diff --git a/source/java/org/alfresco/wcm/sandbox/SandboxFactory.java b/source/java/org/alfresco/wcm/sandbox/SandboxFactory.java index 9c1379467b..16351939b8 100644 --- a/source/java/org/alfresco/wcm/sandbox/SandboxFactory.java +++ b/source/java/org/alfresco/wcm/sandbox/SandboxFactory.java @@ -1340,4 +1340,28 @@ public final class SandboxFactory extends WCMUtil this.userAuth = userAuth; } } + + public void removeGroupsForStore(final String storeRoot) + { + AuthenticationUtil.runAs(new RunAsWork() + { + + public Void doWork() throws Exception + { + String[] permissions = new String[] { PermissionService.WCM_CONTENT_CONTRIBUTOR, PermissionService.WCM_CONTENT_MANAGER, PermissionService.WCM_CONTENT_PUBLISHER, + PermissionService.WCM_CONTENT_REVIEWER }; + for (String permission : permissions) + { + String shortName = storeRoot + "-" + permission; + String group = authorityService.getName(AuthorityType.GROUP, shortName); + if (authorityService.authorityExists(group)) + { + authorityService.deleteAuthority(group); + } + } + return null; + } + }, AuthenticationUtil.getSystemUserName()); + + } } diff --git a/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java b/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java index bce89a42e5..4d31756579 100644 --- a/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java +++ b/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java @@ -724,7 +724,7 @@ public class WebProjectServiceImpl extends WCMUtil implements WebProjectService // It does not matter what webapp name we give here, so "/ROOT" // is as sensible as anything else. It's all going away. - String sandbox = WCMUtil.buildStagingStoreName(wpStoreId); + final String sandbox = WCMUtil.buildStagingStoreName(wpStoreId); String path = WCMUtil.buildStoreWebappPath(sandbox, "/ROOT"); WCMUtil.removeAllVServerWebapps(virtServerRegistry, path, true); @@ -746,6 +746,8 @@ public class WebProjectServiceImpl extends WCMUtil implements WebProjectService // delete the web project node itself nodeService.deleteNode(wpNodeRef); + sandboxFactory.removeGroupsForStore(sandbox); + return null; } }, AuthenticationUtil.getSystemUserName());