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
This commit is contained in:
Tuna Aksoy
2014-10-20 16:05:10 +00:00
parent 2f44341758
commit 4248389a27
2 changed files with 43 additions and 22 deletions

View File

@@ -499,12 +499,6 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
{ {
if (canPerformPermissionAction(nodeRef)) 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 // Set the permission on the node
permissionService.setPermission(nodeRef, authority, permission, true); permissionService.setPermission(nodeRef, authority, permission, true);
} }

View File

@@ -976,35 +976,45 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase
} }
}, user2); }, user2);
doTestInTransaction(new Test<NodeRef>() final NodeRef movedCategory5 = doTestInTransaction(new Test<NodeRef>()
{ {
@Override @Override
public NodeRef run() throws Exception public NodeRef run() throws Exception
{ {
return fileFolderService.move(category5, category6, null).getNodeRef(); return fileFolderService.move(category5, category6, null).getNodeRef();
} }
});
@Override
public void test(final NodeRef movedCategory5) throws Exception
{
assertTrue(permissionService.getInheritParentPermissions(movedCategory5)); assertTrue(permissionService.getInheritParentPermissions(movedCategory5));
assertFalse(permissionService.getInheritParentPermissions(category6)); assertFalse(permissionService.getInheritParentPermissions(category6));
AuthenticationUtil.setFullyAuthenticatedUser(user1); doTestInTransaction(new Test<Void>()
{
@Override
public Void run()
{
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(movedCategory5, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(movedCategory5, RMPermissionModel.FILING));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category6, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category6, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category6, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category6, RMPermissionModel.FILING));
AuthenticationUtil.setFullyAuthenticatedUser(user2); return null;
}
}, user1);
doTestInTransaction(new Test<Void>()
{
@Override
public Void run()
{
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedCategory5, RMPermissionModel.FILING));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category6, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category6, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category6, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category6, RMPermissionModel.FILING));
return null;
} }
}); }, user2);
} }
public void testPermissionsForMovedRecord() public void testPermissionsForMovedRecord()
@@ -1094,19 +1104,20 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase
} }
}, user3); }, user3);
doTestInTransaction(new Test<NodeRef>() final NodeRef movedRecord8 = doTestInTransaction(new Test<NodeRef>()
{ {
@Override @Override
public NodeRef run() throws Exception public NodeRef run() throws Exception
{ {
return fileFolderService.move(record8, folder7, null).getNodeRef(); return fileFolderService.move(record8, folder7, null).getNodeRef();
} }
});
@Override doTestInTransaction(new Test<Void>()
public void test(final NodeRef movedRecord8) throws Exception {
@Override
public Void run()
{ {
AuthenticationUtil.setFullyAuthenticatedUser(user1);
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.FILING));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(folder7, RMPermissionModel.READ_RECORDS)); 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.READ_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING));
AuthenticationUtil.setFullyAuthenticatedUser(user2); return null;
}
}, user1);
doTestInTransaction(new Test<Void>()
{
@Override
public Void run()
{
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(category7, RMPermissionModel.FILING));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(folder7, RMPermissionModel.READ_RECORDS)); 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.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.DENIED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING)); assertEquals(AccessStatus.DENIED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING));
AuthenticationUtil.setFullyAuthenticatedUser(user3); return null;
}
}, user2);
doTestInTransaction(new Test<Void>()
{
@Override
public Void run()
{
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category7, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category7, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(category7, RMPermissionModel.FILING));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(folder7, RMPermissionModel.READ_RECORDS)); 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.DENIED, permissionService.hasPermission(folder8, RMPermissionModel.FILING));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.READ_RECORDS)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.READ_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING)); assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(movedRecord8, RMPermissionModel.FILING));
return null;
} }
}); }, user3);
} }
} }