From 4248389a2765ae8a6950dd25be27b1b2e79fa2cc Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Mon, 20 Oct 2014 16:05:10 +0000 Subject: [PATCH] RM-1741 (Moved root category doesn't inherit permissions) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.1.0.x@88772 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../FilePlanPermissionServiceImpl.java | 6 -- .../FilePlanPermissionServiceImplTest.java | 59 ++++++++++++++----- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java index 5f4071d235..bb8f10f399 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java @@ -499,12 +499,6 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl { if (canPerformPermissionAction(nodeRef)) { - if (RMPermissionModel.FILING.equals(permission)) - { - // Remove record read permission before adding filing permission - permissionService.deletePermission(nodeRef, authority, RMPermissionModel.READ_RECORDS); - } - // Set the permission on the node permissionService.setPermission(nodeRef, authority, permission, true); } diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanPermissionServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanPermissionServiceImplTest.java index 018edf4114..2a8ddf488f 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanPermissionServiceImplTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanPermissionServiceImplTest.java @@ -976,35 +976,45 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase } }, user2); - doTestInTransaction(new Test() + final NodeRef movedCategory5 = doTestInTransaction(new Test() { @Override public NodeRef run() throws Exception { return fileFolderService.move(category5, category6, null).getNodeRef(); } + }); + assertTrue(permissionService.getInheritParentPermissions(movedCategory5)); + assertFalse(permissionService.getInheritParentPermissions(category6)); + + doTestInTransaction(new Test() + { @Override - public void test(final NodeRef movedCategory5) throws Exception + public Void run() { - assertTrue(permissionService.getInheritParentPermissions(movedCategory5)); - assertFalse(permissionService.getInheritParentPermissions(category6)); - - AuthenticationUtil.setFullyAuthenticatedUser(user1); - assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(movedCategory5, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category6, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category6, RMPermissionModel.FILING)); - AuthenticationUtil.setFullyAuthenticatedUser(user2); + return null; + } + }, user1); + doTestInTransaction(new Test() + { + @Override + public Void run() + { assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category6, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category6, RMPermissionModel.FILING)); + + return null; } - }); + }, user2); } public void testPermissionsForMovedRecord() @@ -1094,19 +1104,20 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase } }, user3); - doTestInTransaction(new Test() + final NodeRef movedRecord8 = doTestInTransaction(new Test() { @Override public NodeRef run() throws Exception { return fileFolderService.move(record8, folder7, null).getNodeRef(); } + }); + doTestInTransaction(new Test() + { @Override - public void test(final NodeRef movedRecord8) throws Exception + public Void run() { - AuthenticationUtil.setFullyAuthenticatedUser(user1); - assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(folder7, RMPermissionModel.READ_RECORDS)); @@ -1121,8 +1132,15 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING)); - AuthenticationUtil.setFullyAuthenticatedUser(user2); + return null; + } + }, user1); + doTestInTransaction(new Test() + { + @Override + public Void run() + { assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(folder7, RMPermissionModel.READ_RECORDS)); @@ -1137,8 +1155,15 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING)); - AuthenticationUtil.setFullyAuthenticatedUser(user3); + return null; + } + }, user2); + doTestInTransaction(new Test() + { + @Override + public Void run() + { assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category7, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(folder7, RMPermissionModel.READ_RECORDS)); @@ -1152,7 +1177,9 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase assertEquals(AccessStatus.DENIED, permissionService.hasPermission(folder8, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING)); + + return null; } - }); + }, user3); } }