diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml index ee1b0044e6..197429a496 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml @@ -440,7 +440,7 @@ parent="baseService" class="org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanServiceImpl"> - + @@ -607,8 +607,8 @@ org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.getUsersAssignedToRole=RM.Read.0 org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.getGroupsAssignedToRole=RM.Read.0 org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.getAllAssignedToRole=RM.Read.0 - org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.assignRoleToAuthority=RM_ALLOW - org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.unassignRoleFromAuthority=RM_ALLOW + org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.assignRoleToAuthority=RM_CAP.0.rma:filePlanComponent.CreateModifyDestroyUsersAndGroups + org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.unassignRoleFromAuthority=RM_CAP.0.rma:filePlanComponent.CreateModifyDestroyUsersAndGroups org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.getAllRolesContainerGroup=RM_ALLOW org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService.*=RM_DENY ]]> @@ -1160,9 +1160,9 @@ - + - + diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml index 9636dafab8..36935015bb 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml @@ -539,18 +539,18 @@ - - + - - + diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.delete.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.delete.desc.xml similarity index 64% rename from rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.delete.desc.xml rename to rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.delete.desc.xml index 2aaf104c0f..6bd7f8162d 100644 --- a/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.delete.desc.xml +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.delete.desc.xml @@ -4,8 +4,8 @@ Removes a group or a user from a role. ]]> - /api/rm/role/{roleId}/children/{authorityName} - /api/rm/{store_type}/{store_id}/{id}/role/{roleId}/children/{authorityName} + /api/rm/roles/{roleId}/authorities/{authorityName} + /api/rm/{store_type}/{store_id}/{id}/roles/{roleId}/authorities/{authorityName} argument user required diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.delete.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.delete.json.ftl similarity index 100% rename from rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.delete.json.ftl rename to rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.delete.json.ftl diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.post.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.post.desc.xml similarity index 63% rename from rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.post.desc.xml rename to rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.post.desc.xml index 7ddf219242..75ee4da9dc 100644 --- a/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.post.desc.xml +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.post.desc.xml @@ -4,8 +4,8 @@ Adds a group or a user to a role. ]]> - /api/rm/role/{roleId}/children/{authorityName} - /api/rm/{store_type}/{store_id}/{id}/role/{roleId}/children/{authorityName} + /api/rm/roles/{roleId}/authorities/{authorityName} + /api/rm/{store_type}/{store_id}/{id}/roles/{roleId}/authorities/{authorityName} argument user required diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.post.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.post.json.ftl similarity index 100% rename from rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/groups/rm-children.post.json.ftl rename to rm-server/config/alfresco/templates/webscripts/org/alfresco/repository/roles/rm-authorities.post.json.ftl diff --git a/rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenAbstract.java b/rm-server/source/java/org/alfresco/repo/web/scripts/roles/AbstractRmAuthorities.java similarity index 93% rename from rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenAbstract.java rename to rm-server/source/java/org/alfresco/repo/web/scripts/roles/AbstractRmAuthorities.java index f1b594aae0..d438c1ff9a 100644 --- a/rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenAbstract.java +++ b/rm-server/source/java/org/alfresco/repo/web/scripts/roles/AbstractRmAuthorities.java @@ -16,7 +16,7 @@ * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . */ -package org.alfresco.repo.web.scripts.groups; +package org.alfresco.repo.web.scripts.roles; import java.util.Map; @@ -34,7 +34,7 @@ import org.tuckey.web.filters.urlrewrite.utils.StringUtils; * @author Tuna Aksoy * @since 2.1 */ -public class RmChildrenAbstract extends RoleDeclarativeWebScript +public class AbstractRmAuthorities extends RoleDeclarativeWebScript { /** Constants for the url parameters */ private static final String ROLE_ID = "roleId"; diff --git a/rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenDelete.java b/rm-server/source/java/org/alfresco/repo/web/scripts/roles/RmAuthoritiesDelete.java similarity index 91% rename from rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenDelete.java rename to rm-server/source/java/org/alfresco/repo/web/scripts/roles/RmAuthoritiesDelete.java index 597520e7e5..99f0d358a6 100644 --- a/rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenDelete.java +++ b/rm-server/source/java/org/alfresco/repo/web/scripts/roles/RmAuthoritiesDelete.java @@ -16,7 +16,7 @@ * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . */ -package org.alfresco.repo.web.scripts.groups; +package org.alfresco.repo.web.scripts.roles; import java.util.HashMap; import java.util.Map; @@ -32,7 +32,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest; * @author Tuna Aksoy * @since 2.1 */ -public class RmChildrenDelete extends RmChildrenAbstract +public class RmAuthoritiesDelete extends AbstractRmAuthorities { /** * @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest, diff --git a/rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenPost.java b/rm-server/source/java/org/alfresco/repo/web/scripts/roles/RmAuthoritiesPost.java similarity index 91% rename from rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenPost.java rename to rm-server/source/java/org/alfresco/repo/web/scripts/roles/RmAuthoritiesPost.java index ca20dd7c1a..3d7bd644f3 100644 --- a/rm-server/source/java/org/alfresco/repo/web/scripts/groups/RmChildrenPost.java +++ b/rm-server/source/java/org/alfresco/repo/web/scripts/roles/RmAuthoritiesPost.java @@ -16,7 +16,7 @@ * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . */ -package org.alfresco.repo.web.scripts.groups; +package org.alfresco.repo.web.scripts.roles; import java.util.HashMap; import java.util.Map; @@ -32,7 +32,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest; * @author Tuna Aksoy * @since 2.1 */ -public class RmChildrenPost extends RmChildrenAbstract +public class RmAuthoritiesPost extends AbstractRmAuthorities { /** * @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest, diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/WebScriptTestSuite.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/WebScriptTestSuite.java index a7526b62f0..cb3163fbc5 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/WebScriptTestSuite.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/WebScriptTestSuite.java @@ -27,7 +27,7 @@ import org.alfresco.module.org_alfresco_module_rm.test.webscript.EmailMapScriptT import org.alfresco.module.org_alfresco_module_rm.test.webscript.EventRestApiTest; import org.alfresco.module.org_alfresco_module_rm.test.webscript.RMCaveatConfigScriptTest; import org.alfresco.module.org_alfresco_module_rm.test.webscript.RMConstraintScriptTest; -import org.alfresco.module.org_alfresco_module_rm.test.webscript.RmChildrenRestApiTest; +import org.alfresco.module.org_alfresco_module_rm.test.webscript.RmAuthoritiesRestApiTest; import org.alfresco.module.org_alfresco_module_rm.test.webscript.RmClassesRestApiTest; import org.alfresco.module.org_alfresco_module_rm.test.webscript.RmPropertiesRestApiTest; import org.alfresco.module.org_alfresco_module_rm.test.webscript.RoleRestApiTest; @@ -56,7 +56,7 @@ import org.junit.runners.Suite.SuiteClasses; ActionDefinitionsRestApiTest.class, RmClassesRestApiTest.class, RmPropertiesRestApiTest.class, - RmChildrenRestApiTest.class + RmAuthoritiesRestApiTest.class }) public class WebScriptTestSuite { diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java index 4dc7fe4839..dc4efdd9a8 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java @@ -469,7 +469,7 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase createPerson(AuthenticationUtil.getSystemUserName(), false); } assertTrue("No person object for System available.", authDao.authorityExists(AuthenticationUtil.getSystemUserName())); - + storeRef = StoreRef.STORE_REF_WORKSPACE_SPACESSTORE; rootNodeRef = nodeService.getRootNode(storeRef); @@ -486,13 +486,13 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase assertNotNull("Could not create base folder", folder); siteInfo = siteService.createSite( - "rm-site-dashboard", - SITE_ID, - "title", - "descrition", - SiteVisibility.PUBLIC, - RecordsManagementModel.TYPE_RM_SITE); - + "rm-site-dashboard", + SITE_ID, + "title", + "descrition", + SiteVisibility.PUBLIC, + RecordsManagementModel.TYPE_RM_SITE); + filePlan = siteService.getContainer(SITE_ID, RmSiteType.COMPONENT_DOCUMENT_LIBRARY); assertNotNull("Site document library container was not created successfully.", filePlan); @@ -544,23 +544,23 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase rmUserName = GUID.generate(); rmUserPerson = createPerson(rmUserName); - filePlanRoleService.assignRoleToAuthority(filePlan, "User", rmUserName); + filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_USER, rmUserName); powerUserName = GUID.generate(); powerUserPerson = createPerson(powerUserName); - filePlanRoleService.assignRoleToAuthority(filePlan, "PowerUser", powerUserName); + filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_POWER_USER, powerUserName); securityOfficerName = GUID.generate(); securityOfficerPerson = createPerson(securityOfficerName); - filePlanRoleService.assignRoleToAuthority(filePlan, "SecurityOfficer", securityOfficerName); + filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_SECURITY_OFFICER, securityOfficerName); recordsManagerName = GUID.generate(); recordsManagerPerson = createPerson(recordsManagerName); - filePlanRoleService.assignRoleToAuthority(filePlan, "RecordsManager", recordsManagerName); + filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_RECORDS_MANAGER, recordsManagerName); rmAdminName = GUID.generate(); rmAdminPerson = createPerson(rmAdminName); - filePlanRoleService.assignRoleToAuthority(filePlan, "Administrator", rmAdminName); + filePlanRoleService.assignRoleToAuthority(filePlan, FilePlanRoleService.ROLE_ADMIN, rmAdminName); testUsers = new String[] { @@ -600,7 +600,7 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase properties.put(ContentModel.PROP_USERNAME, userName); return personService.createPerson(properties); } - + protected NodeRef createPerson(String userName) { return createPerson(userName, true); diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmChildrenRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmAuthoritiesRestApiTest.java similarity index 87% rename from rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmChildrenRestApiTest.java rename to rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmAuthoritiesRestApiTest.java index d8f1f49a46..c9ca90e951 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmChildrenRestApiTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmAuthoritiesRestApiTest.java @@ -26,6 +26,7 @@ import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService; import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMWebScriptTestCase; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.security.AuthorityType; +import org.alfresco.util.GUID; import org.json.JSONException; import org.json.JSONObject; import org.springframework.extensions.webscripts.Status; @@ -39,10 +40,10 @@ import org.springframework.extensions.webscripts.TestWebScriptServer.Response; * @author Tuna Aksoy * @since 2.1 */ -public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase +public class RmAuthoritiesRestApiTest extends BaseRMWebScriptTestCase { /** URL for the REST APIs */ - private static final String RM_CHILDREN_URL = "/api/rm/%s/role/%s/children/%s"; + private static final String RM_CHILDREN_URL = "/api/rm/%s/roles/%s/authorities/%s"; /** Constant for the content type */ private static final String APPLICATION_JSON = "application/json"; @@ -56,9 +57,10 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase public void testRmAddRemoveUser() throws IOException, JSONException { // Create a test user - String userName = "geshjsjuasftg"; + String userName = GUID.generate(); createUser(userName); + // Get the name String name = authorityService.getName(AuthorityType.USER, userName); // Check if the user is already assigned to the role @@ -66,7 +68,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase // Format url and send request String url = getFormattedUrlString(name); - Response response = postRequest(url); + Response response = postRequestSuccess(url); // Check the content from the response checkContent(response); @@ -75,7 +77,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase assertTrue(getUsersAssignedToRole().contains(name)); // Remove the user from the role - response = deleteRequest(url); + response = deleteRequestSuccess(url); // Check the content from the response checkContent(response); @@ -96,9 +98,10 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase public void testRmAddRemoveGroup() throws IOException, JSONException { // Create a group - String groupName = "arhweurawy"; + String groupName = GUID.generate(); createGroup(groupName); + // Get the name String name = authorityService.getName(AuthorityType.GROUP, groupName); // Check if the group is already assigned to the role @@ -106,7 +109,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase // Format url and send request String url = getFormattedUrlString(name); - Response response = postRequest(url); + Response response = postRequestSuccess(url); // Check the content from the response checkContent(response); @@ -115,7 +118,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase assertTrue(getGroupsAssignedToRole().contains(name)); // Remove the group from the role - response = deleteRequest(url); + response = deleteRequestSuccess(url); // Check the content from the response checkContent(response); @@ -124,7 +127,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase assertFalse(getGroupsAssignedToRole().contains(name)); // Delete the group - deleteGroup(groupName); + deleteGroup(name); } /** @@ -159,7 +162,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase String storeId = storeRef.getIdentifier(); String id = filePlan.getId(); - StringBuffer sb = new StringBuffer(); + StringBuffer sb = new StringBuffer(32); sb.append(storeType); sb.append("/"); sb.append(storeId); @@ -188,7 +191,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase * @throws UnsupportedEncodingException * @throws IOException */ - private Response postRequest(String url) throws UnsupportedEncodingException, IOException + private Response postRequestSuccess(String url) throws UnsupportedEncodingException, IOException { return sendRequest(new PostRequest(url, new JSONObject().toString(), APPLICATION_JSON), Status.STATUS_OK); } @@ -200,7 +203,7 @@ public class RmChildrenRestApiTest extends BaseRMWebScriptTestCase * @return Returns the response from the server * @throws IOException */ - private Response deleteRequest(String url) throws IOException + private Response deleteRequestSuccess(String url) throws IOException { return sendRequest(new DeleteRequest(url), Status.STATUS_OK); }