From 1242cc4081a07139d3f7a821461530109aa81df4 Mon Sep 17 00:00:00 2001 From: Roxana Dina Date: Tue, 5 Jul 2016 15:50:35 +0300 Subject: [PATCH 1/5] Revert "Revert "Merge branch 'feature-2.4/RM-3265_NoOptionToMoveADestroyedRecordFolder' into 'release/V2.4'"" This reverts commit 36d5dc46eaecf78ef6d253ff4b72cb43172e235b. --- .../capability/rm-capabilities-condition-context.xml | 4 ++-- .../capability/rm-capabilities-recordfolder-context.xml | 2 +- ...ition.java => MovableRecordFolderCapabilityCondition.java} | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) rename rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/{MovableCapabilityCondition.java => MovableRecordFolderCapabilityCondition.java} (86%) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml index d5509295c4..e90a241f9f 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml @@ -60,9 +60,9 @@ class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.TransferredCapabilityCondition"> - + class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.MovableRecordFolderCapabilityCondition"> - + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableCapabilityCondition.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java similarity index 86% rename from rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableCapabilityCondition.java rename to rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java index 99aebc7f29..787221f457 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableCapabilityCondition.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java @@ -36,7 +36,7 @@ import org.alfresco.service.cmr.repository.NodeRef; * @since 2.4.1 * */ -public class MovableCapabilityCondition extends AbstractCapabilityCondition +public class MovableRecordFolderCapabilityCondition extends AbstractCapabilityCondition { /** @@ -47,6 +47,6 @@ public class MovableCapabilityCondition extends AbstractCapabilityCondition { if (nodeService.hasAspect(nodeRef, ASPECT_GHOSTED) && dispositionService.isDisposableItemCutoff(nodeRef)) return true; - return !dispositionService.isDisposableItemCutoff(nodeRef); + return ! (dispositionService.isDisposableItemCutoff(nodeRef) || recordFolderService.isRecordFolderClosed(nodeRef)); } } From ff2d6eb64ab25ba980a7fdf4c2b7368cccf2b5c9 Mon Sep 17 00:00:00 2001 From: Roxana Dina Date: Thu, 7 Jul 2016 16:32:26 +0300 Subject: [PATCH 2/5] RM-3265 Explore test failures cause. Remove condition for closed folders. --- .../condition/MovableRecordFolderCapabilityCondition.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java index 787221f457..de741d1604 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java @@ -47,6 +47,6 @@ public class MovableRecordFolderCapabilityCondition extends AbstractCapabilityCo { if (nodeService.hasAspect(nodeRef, ASPECT_GHOSTED) && dispositionService.isDisposableItemCutoff(nodeRef)) return true; - return ! (dispositionService.isDisposableItemCutoff(nodeRef) || recordFolderService.isRecordFolderClosed(nodeRef)); + return ! (dispositionService.isDisposableItemCutoff(nodeRef) /*|| recordFolderService.isRecordFolderClosed(nodeRef)*/); } } From ca77b1c782971a2724c9ede35da27461ed8c728b Mon Sep 17 00:00:00 2001 From: Roxana Dina Date: Tue, 12 Jul 2016 16:32:47 +0300 Subject: [PATCH 3/5] RM-3265 Explore test failures cause. Introduce "kinds" property in moveRecordFolderCapability bean. --- .../capability/rm-capabilities-recordfolder-context.xml | 5 +++++ .../condition/MovableRecordFolderCapabilityCondition.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml index 74f1183507..4a24c03715 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml @@ -122,6 +122,11 @@ + + + RECORD_FOLDER + + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java index de741d1604..787221f457 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java @@ -47,6 +47,6 @@ public class MovableRecordFolderCapabilityCondition extends AbstractCapabilityCo { if (nodeService.hasAspect(nodeRef, ASPECT_GHOSTED) && dispositionService.isDisposableItemCutoff(nodeRef)) return true; - return ! (dispositionService.isDisposableItemCutoff(nodeRef) /*|| recordFolderService.isRecordFolderClosed(nodeRef)*/); + return ! (dispositionService.isDisposableItemCutoff(nodeRef) || recordFolderService.isRecordFolderClosed(nodeRef)); } } From d729a699228c2ddad33497fa32bc505d8fe4f563 Mon Sep 17 00:00:00 2001 From: Ana Bozianu Date: Mon, 13 Mar 2017 14:53:21 +0200 Subject: [PATCH 4/5] RM-3265 - fix merge error --- .../condition/MovableRecordFolderCapabilityCondition.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java index b2c887549b..41c0f4aba2 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/MovableRecordFolderCapabilityCondition.java @@ -47,6 +47,6 @@ public class MovableRecordFolderCapabilityCondition extends AbstractCapabilityCo { if (nodeService.hasAspect(nodeRef, ASPECT_GHOSTED) && dispositionService.isDisposableItemCutoff(nodeRef)) return true; - return !dispositionService.isDisposableItemCutoff(nodeRef) || recordFolderService.isRecordFolderClosed(nodeRef); + return !(dispositionService.isDisposableItemCutoff(nodeRef) || recordFolderService.isRecordFolderClosed(nodeRef)); } } From 793deafcbacfbd974052714d7f8909ea5af43743 Mon Sep 17 00:00:00 2001 From: Ana Bozianu Date: Mon, 13 Mar 2017 18:20:39 +0200 Subject: [PATCH 5/5] RM-3265 - added integration test for moving a closed folder --- .../recordfolder/MoveRecordFolderTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java index e0d62b9863..df34f5c96e 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java @@ -510,6 +510,46 @@ public class MoveRecordFolderTest extends BaseRMTestCase } + /** + * Given a closed folder + * When we evaluate the move capability on it + * The access is denied + */ + public void testMoveClosedFolder() + { + final NodeRef destination = doTestInTransaction(new Test() + { + @Override + public NodeRef run() + { + // create a record category + return filePlanService.createRecordCategory(filePlan, GUID.generate()); + } + }); + + final NodeRef testFolder = doTestInTransaction(new Test() + { + @Override + public NodeRef run() + { + // create folder + NodeRef testFolder = recordFolderService.createRecordFolder(rmContainer, GUID.generate()); + + // close folder + recordFolderService.closeRecordFolder(testFolder); + + return testFolder; + } + + @Override + public void test(NodeRef testFolder) throws Exception + { + Capability moveCapability = capabilityService.getCapability("MoveRecordFolder"); + assertEquals(AccessDecisionVoter.ACCESS_DENIED, moveCapability.evaluate(testFolder, destination)); + } + }); + } + private NodeRef createRecordCategory(boolean recordLevel) { NodeRef rc = filePlanService.createRecordCategory(filePlan, GUID.generate());