From be07d6ca838cfc01bf07587123212ac92b37ddbb Mon Sep 17 00:00:00 2001 From: Mark Rogers Date: Tue, 30 Jun 2009 16:39:13 +0000 Subject: [PATCH] ALFCOM - 3111 - It's impossible to remove group with "Manager" role on "Search for Site Groups" page - Added new Unit Text and applied similar fixes to removeMembership to those applied to setMembership. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15046 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/repo/site/SiteServiceImpl.java | 2 +- .../repo/site/SiteServiceImplTest.java | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/source/java/org/alfresco/repo/site/SiteServiceImpl.java b/source/java/org/alfresco/repo/site/SiteServiceImpl.java index b86d4edbe2..3ebafd181c 100644 --- a/source/java/org/alfresco/repo/site/SiteServiceImpl.java +++ b/source/java/org/alfresco/repo/site/SiteServiceImpl.java @@ -1301,7 +1301,7 @@ public class SiteServiceImpl implements SiteService, SiteModel { activityService.postActivity( ActivityType.SITE_GROUP_REMOVED, shortName, - ACTIVITY_TOOL, getActivityUserData(authorityName, "")); + ACTIVITY_TOOL, getActivityGroupData(authorityName, "")); } } else diff --git a/source/java/org/alfresco/repo/site/SiteServiceImplTest.java b/source/java/org/alfresco/repo/site/SiteServiceImplTest.java index 229b0bdfbc..8ed44bd595 100644 --- a/source/java/org/alfresco/repo/site/SiteServiceImplTest.java +++ b/source/java/org/alfresco/repo/site/SiteServiceImplTest.java @@ -1161,6 +1161,71 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest // Should go here } } + + /** + * Create a site with a USER manager. + * Add Group manager membership. + * + * Remove User membership - should be O.K. because of Group Membership + * Remove Group membership - should be prevented (last manager) + * + * Add User membership to Manager + * + * Remove Group membership - should be O.K. because of User Membership + * Remove User membership - should be prevented (last manager) + * + */ + public void testALFCOM_3111() + { + // USER_ONE - SiteManager + // GROUP_TWO - Manager + + String siteName = "testALFCOM_3019"; + + // Create a site as user one + this.siteService.createSite(TEST_SITE_PRESET, siteName, TEST_TITLE, TEST_DESCRIPTION, SiteVisibility.MODERATED); + + Map members = this.siteService.listMembers(siteName, null, null, 0); + String managerName = members.keySet().iterator().next(); + + /** + * Add a group (GROUP_TWO) with role Manager + */ + this.siteService.setMembership(siteName, this.groupTwo, SiteModel.SITE_MANAGER); + + // Should be allowed + this.siteService.removeMembership(siteName, managerName); + + /** + * Should not be allowed to delete last group + */ + try + { + this.siteService.removeMembership(siteName, this.groupTwo); + fail(); + } + catch (Exception e) + { + // Should go here + } + + this.siteService.setMembership(siteName, managerName, SiteModel.SITE_MANAGER); + + this.siteService.removeMembership(siteName, this.groupTwo); + + /** + * Should not be allowed to delete last user + */ + try + { + this.siteService.removeMembership(siteName, managerName); + fail(); + } + catch (Exception e) + { + // Should go here + } + }