diff --git a/source/java/org/alfresco/repo/activities/ActivityType.java b/source/java/org/alfresco/repo/activities/ActivityType.java index 1e35afb3c2..fc47f33407 100644 --- a/source/java/org/alfresco/repo/activities/ActivityType.java +++ b/source/java/org/alfresco/repo/activities/ActivityType.java @@ -35,4 +35,7 @@ public interface ActivityType public final String SITE_USER_JOINED = "org.alfresco.site.user-joined"; public final String SITE_USER_REMOVED = "org.alfresco.site.user-left"; public final String SITE_USER_ROLE_UPDATE = "org.alfresco.site.user-role-changed"; + public final String SITE_GROUP_ADDED = "org.alfresco.site.group-added"; + public final String SITE_GROUP_REMOVED = "org.alfresco.site.group-removed"; + public final String SITE_GROUP_ROLE_UPDATE = "org.alfresco.site.group-role-changed"; } diff --git a/source/java/org/alfresco/repo/site/SiteServiceImpl.java b/source/java/org/alfresco/repo/site/SiteServiceImpl.java index 0531cc0aca..d221f307a8 100644 --- a/source/java/org/alfresco/repo/site/SiteServiceImpl.java +++ b/source/java/org/alfresco/repo/site/SiteServiceImpl.java @@ -1291,13 +1291,13 @@ public class SiteServiceImpl implements SiteService, SiteModel { activityService.postActivity( ActivityType.SITE_USER_REMOVED, shortName, - ACTIVITY_TOOL, getActivityData(authorityName, "")); + ACTIVITY_TOOL, getActivityUserData(authorityName, "")); } else { - // TODO - update this, if sites support groups - logger.error("setMembership - failed to post activity: unexpected authority type: " - + AuthorityType.getAuthorityType(authorityName)); + activityService.postActivity( + ActivityType.SITE_GROUP_REMOVED, shortName, + ACTIVITY_TOOL, getActivityUserData(authorityName, "")); } } else @@ -1394,14 +1394,13 @@ public class SiteServiceImpl implements SiteService, SiteModel { activityService.postActivity( ActivityType.SITE_USER_JOINED, shortName, - ACTIVITY_TOOL, getActivityData(authorityName, role)); + ACTIVITY_TOOL, getActivityUserData(authorityName, role)); } else { - // TODO - update this, if sites support groups - logger - .error("setMembership - failed to post activity: unexpected authority type: " - + AuthorityType.getAuthorityType(authorityName)); + activityService.postActivity( + ActivityType.SITE_GROUP_ADDED, shortName, + ACTIVITY_TOOL, getActivityGroupData(authorityName, role)); } } else @@ -1410,13 +1409,13 @@ public class SiteServiceImpl implements SiteService, SiteModel { activityService.postActivity( ActivityType.SITE_USER_ROLE_UPDATE, shortName, - ACTIVITY_TOOL, getActivityData(authorityName, role)); + ACTIVITY_TOOL, getActivityUserData(authorityName, role)); } else { - // TODO - update this, if sites support groups - logger.error("setMembership - failed to post activity: unexpected authority type: " - + AuthorityType.getAuthorityType(authorityName)); + activityService.postActivity( + ActivityType.SITE_GROUP_ROLE_UPDATE, shortName, + ACTIVITY_TOOL, getActivityUserData(authorityName, role)); } } } @@ -1584,7 +1583,7 @@ public class SiteServiceImpl implements SiteService, SiteModel * @param role role * @return */ - private String getActivityData(String userName, String role) + private String getActivityUserData(String userName, String role) { String memberFN = ""; String memberLN = ""; @@ -1615,6 +1614,32 @@ public class SiteServiceImpl implements SiteService, SiteModel } } + /** + * Helper method to get the activity data for a group + * + * @param groupName user name + * @param role role + * @return Activity data in JSON format + */ + private String getActivityGroupData(String groupName, String role) + { + try + { + JSONObject activityData = new JSONObject(); + activityData.put("role", role); + activityData.put("groupName", groupName); + + return activityData.toString(); + } + catch (JSONException je) + { + // log error, subsume exception + logger.error("Failed to get activity data: " + je); + return ""; + } + } + + public void setRoleComparator(Comparator roleComparator) { this.roleComparator = roleComparator; } diff --git a/source/java/org/alfresco/repo/site/script/Site.java b/source/java/org/alfresco/repo/site/script/Site.java index 7b5992a173..08bf80bb90 100644 --- a/source/java/org/alfresco/repo/site/script/Site.java +++ b/source/java/org/alfresco/repo/site/script/Site.java @@ -319,23 +319,23 @@ public class Site implements Serializable *

* If the user is not a member of the site then null is returned. * - * @param userName user name + * @param authorityName authority name * @return String user's role or null if not a member */ - public String getMembersRole(String userName) + public String getMembersRole(String authorityName) { - return this.siteService.getMembersRole(getShortName(), userName); + return this.siteService.getMembersRole(getShortName(), authorityName); } /** * Indicates whether a user is a member of the site. * - * @param userName user name + * @param authorityName user name * @return boolean true if the user is a member of the site, false otherwise */ - public boolean isMember(String userName) + public boolean isMember(String authorityName) { - return this.siteService.isMember(getShortName(), userName); + return this.siteService.isMember(getShortName(), authorityName); } /** @@ -347,24 +347,24 @@ public class Site implements Serializable * Only a site manager can modify memberships and there must be at least one site manager at * all times. * - * @param userName user name + * @param authorityName authority name * @param role site role */ - public void setMembership(String userName, String role) + public void setMembership(String authorityName, String role) { - this.siteService.setMembership(getShortName(), userName, role); + this.siteService.setMembership(getShortName(), authorityName, role); } /** - * Removes a users membership of the site. + * Removes a user or group membership from a site. *

* Only a site manager can remove a user's membership and the last site manager can not be removed. * - * @param userName user name + * @param authorityName authority name */ - public void removeMembership(String userName) + public void removeMembership(String authorityName) { - this.siteService.removeMembership(getShortName(), userName); + this.siteService.removeMembership(getShortName(), authorityName); } /**