From 24838caf0c3a2f2cd02aeb67e67a0c4abdebdeb4 Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Fri, 8 Mar 2013 03:58:24 +0000 Subject: [PATCH] RM-623: Unable to rename record folder git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@47783 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../extended-repository-context.xml | 33 ------- .../model/behaviour/RecordCopyBehaviours.java | 91 ++++++++++--------- 2 files changed, 49 insertions(+), 75 deletions(-) diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml index 207b707517..2e82dcff34 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml @@ -236,37 +236,4 @@ - - - - \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java index 2d262ae272..b6b7585c79 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java @@ -119,22 +119,26 @@ public class RecordCopyBehaviours implements RecordsManagementModel */ public void onMoveRecordNode(ChildAssociationRef oldChildAssocRef, ChildAssociationRef newChildAssocRef) { - final NodeRef newNodeRef = newChildAssocRef.getChildRef(); - final NodeService nodeService = rmServiceRegistry.getNodeService(); - - AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() + // check the records parent has actually changed + if (oldChildAssocRef.getParentRef().equals(newChildAssocRef.getParentRef()) == false) { - public Object doWork() throws Exception + final NodeRef newNodeRef = newChildAssocRef.getChildRef(); + final NodeService nodeService = rmServiceRegistry.getNodeService(); + + AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() { - if (nodeService.exists(newNodeRef) == true) + public Object doWork() throws Exception { - // Remove unwanted aspects - removeUnwantedAspects(nodeService, newNodeRef); + if (nodeService.exists(newNodeRef) == true) + { + // Remove unwanted aspects + removeUnwantedAspects(nodeService, newNodeRef); + } + + return null; } - - return null; - } - }, AuthenticationUtil.getAdminUserName()); + }, AuthenticationUtil.getAdminUserName()); + } } /** @@ -146,40 +150,43 @@ public class RecordCopyBehaviours implements RecordsManagementModel @SuppressWarnings("unused") public void onMoveRecordFolderNode(ChildAssociationRef oldChildAssocRef, ChildAssociationRef newChildAssocRef) { - final NodeRef newNodeRef = newChildAssocRef.getChildRef(); - final NodeService nodeService = rmServiceRegistry.getNodeService(); - final RecordsManagementService rmService = rmServiceRegistry.getRecordsManagementService(); - final RecordsManagementActionService rmActionService = rmServiceRegistry.getRecordsManagementActionService(); - - AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() - { - public Object doWork() throws Exception + if (oldChildAssocRef.getParentRef().equals(newChildAssocRef.getParentRef()) == false) + { + final NodeRef newNodeRef = newChildAssocRef.getChildRef(); + final NodeService nodeService = rmServiceRegistry.getNodeService(); + final RecordsManagementService rmService = rmServiceRegistry.getRecordsManagementService(); + final RecordsManagementActionService rmActionService = rmServiceRegistry.getRecordsManagementActionService(); + + AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() { - if (nodeService.exists(newNodeRef) == true) + public Object doWork() throws Exception { - // Remove unwanted aspects - removeUnwantedAspects(nodeService, newNodeRef); + if (nodeService.exists(newNodeRef) == true) + { + // Remove unwanted aspects + removeUnwantedAspects(nodeService, newNodeRef); + + // TODO .. this isn't right!! + // .. what if the folder is in motion .. do we really want to lose all the disposition information? + // .. how do we merge from one disposition schedule to another + // .. for now throw unsupportedOperationException and refactor when considered + throw new UnsupportedOperationException("Moving a record folder is currently not supported."); + + // // Trigger folder setup + // rmActionService.executeRecordsManagementAction(newNodeRef, "setupRecordFolder"); + // + // // Sort out the child records + // for (NodeRef record : rmService.getRecords(newNodeRef)) + // { + // removeUnwantedAspects(nodeService, record); + // rmActionService.executeRecordsManagementAction(record, "file"); + // } + } - // TODO .. this isn't right!! - // .. what if the folder is in motion .. do we really want to lose all the disposition information? - // .. how do we merge from one disposition schedule to another - // .. for now throw unsupportedOperationException and refactor when considered - throw new UnsupportedOperationException("Moving a record folder is currently not supported."); - -// // Trigger folder setup -// rmActionService.executeRecordsManagementAction(newNodeRef, "setupRecordFolder"); -// -// // Sort out the child records -// for (NodeRef record : rmService.getRecords(newNodeRef)) -// { -// removeUnwantedAspects(nodeService, record); -// rmActionService.executeRecordsManagementAction(record, "file"); -// } + return null; } - - return null; - } - }, AuthenticationUtil.getAdminUserName()); + }, AuthenticationUtil.getAdminUserName()); + } } /**