diff --git a/source/java/org/alfresco/repo/web/scripts/blogs/AbstractBlogWebScript.java b/source/java/org/alfresco/repo/web/scripts/blogs/AbstractBlogWebScript.java index 95c03a5175..6bdb4e2e6c 100644 --- a/source/java/org/alfresco/repo/web/scripts/blogs/AbstractBlogWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/blogs/AbstractBlogWebScript.java @@ -21,6 +21,7 @@ package org.alfresco.repo.web.scripts.blogs; import java.io.IOException; import java.util.Map; +import org.alfresco.repo.activities.post.lookup.PostLookup; import org.alfresco.repo.blog.BlogServiceImpl; import org.alfresco.repo.content.MimetypeMap; import org.alfresco.repo.model.Repository; @@ -36,6 +37,7 @@ import org.alfresco.service.cmr.site.SiteService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONStringer; +import org.json.JSONWriter; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -114,7 +116,7 @@ public abstract class AbstractBlogWebScript extends DeclarativeWebScript * @param event One of created, updated, deleted */ protected void addActivityEntry(String event, BlogPostInfo blog, - SiteInfo site, WebScriptRequest req, JSONObject json) + SiteInfo site, WebScriptRequest req, JSONObject json, NodeRef nodeRef) { // We can only add activities against a site if (site == null) @@ -147,11 +149,19 @@ public abstract class AbstractBlogWebScript extends DeclarativeWebScript try { - String data = new JSONStringer() + JSONWriter jsonWriter = new JSONStringer() .object() .key(TITLE).value(title) - .key(PAGE).value(page) - .endObject().toString(); + .key(PAGE).value(page); + + if (nodeRef != null) + { + // ALF-10182: the nodeRef needs to be included in the activity + // post to ensure read permissions are respected. + jsonWriter.key(PostLookup.JSON_NODEREF).value(nodeRef.toString()); + } + + String data = jsonWriter.endObject().toString(); activityService.postActivity( "org.alfresco.blog.post-" + event, diff --git a/source/java/org/alfresco/repo/web/scripts/blogs/post/BlogPostDelete.java b/source/java/org/alfresco/repo/web/scripts/blogs/post/BlogPostDelete.java index 72560d5754..f29a35068c 100644 --- a/source/java/org/alfresco/repo/web/scripts/blogs/post/BlogPostDelete.java +++ b/source/java/org/alfresco/repo/web/scripts/blogs/post/BlogPostDelete.java @@ -57,7 +57,7 @@ public class BlogPostDelete extends AbstractBlogWebScript // If we're in a site, and it isn't a draft, add an activity if (site != null && !isDraftBlogPost) { - addActivityEntry("deleted", blog, site, req, json); + addActivityEntry("deleted", blog, site, req, json, nodeRef); } // Report it as deleted diff --git a/source/java/org/alfresco/repo/web/scripts/blogs/posts/BlogPostsPost.java b/source/java/org/alfresco/repo/web/scripts/blogs/posts/BlogPostsPost.java index b33366978a..6ed5c5b06d 100644 --- a/source/java/org/alfresco/repo/web/scripts/blogs/posts/BlogPostsPost.java +++ b/source/java/org/alfresco/repo/web/scripts/blogs/posts/BlogPostsPost.java @@ -83,7 +83,7 @@ public class BlogPostsPost extends AbstractBlogWebScript jsonPostParams.getPage() != null && !isDraft) { - addActivityEntry("created", post, site, req, json); + addActivityEntry("created", post, site, req, json, nodeRef); } return model;