From 1f394662522b42907cc4289f71188c3f216a4310 Mon Sep 17 00:00:00 2001 From: Mark Hibbins Date: Mon, 7 Apr 2014 15:18:55 +0000 Subject: [PATCH] RM-1430 - Fixed move to holds/unfiled/transfers issues along with associated tests git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@66928 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org_alfresco_module_rm/rm-action-context.xml | 4 ++-- .../action/impl/CopyMoveFileToBaseAction.java | 10 ++++++++++ .../RmSubstitutionSuggestionsGet.java | 12 ++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml index 821b6c5330..f4ae65b80c 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml @@ -869,7 +869,7 @@ - org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.execute=RM_CAP.0.rma:filePlanComponent.CreateModifyDestroyEvents + org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.execute=RM_CAP.0.rma:filePlanComponent.rmCopy org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.*=RM_ALLOW org.alfresco.repo.action.executer.ActionExecuter.*=RM_ALLOW @@ -897,7 +897,7 @@ - org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.execute=RM_CAP.0.rma:filePlanComponent.CreateModifyDestroyEvents + org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.execute=RM_CAP.0.rma:filePlanComponent.rmMove org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.*=RM_ALLOW org.alfresco.repo.action.executer.ActionExecuter.*=RM_ALLOW diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CopyMoveFileToBaseAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CopyMoveFileToBaseAction.java index fe57413f1d..3af05d184b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CopyMoveFileToBaseAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CopyMoveFileToBaseAction.java @@ -209,6 +209,16 @@ public abstract class CopyMoveFileToBaseAction extends RMActionExecuterAbstractB throw new AlfrescoRuntimeException("Unable to execute " + action.getActionDefinitionName() + " action, because the destination path could not be determined."); } } + else + { + QName nodeType = nodeService.getType(nodeRef); + if(nodeType.equals(RecordsManagementModel.TYPE_HOLD_CONTAINER) || + nodeType.equals(RecordsManagementModel.TYPE_TRANSFER_CONTAINER) || + nodeType.equals(RecordsManagementModel.TYPE_UNFILED_RECORD_CONTAINER)) + { + throw new AlfrescoRuntimeException("Unable to execute " + action.getActionDefinitionName() + " action, because the destination path in invalid."); + } + } if(pathElements.size() > 1) { nodeRef = createOrResolvePath(action, nodeRef, actionedUponNodeRef, pathElements.subList(1, pathElements.size()), targetisUnfiledRecords, create, creating); diff --git a/rm-server/source/java/org/alfresco/repo/web/scripts/substitutionsuggestions/RmSubstitutionSuggestionsGet.java b/rm-server/source/java/org/alfresco/repo/web/scripts/substitutionsuggestions/RmSubstitutionSuggestionsGet.java index aa6cf967d3..960ca822ca 100644 --- a/rm-server/source/java/org/alfresco/repo/web/scripts/substitutionsuggestions/RmSubstitutionSuggestionsGet.java +++ b/rm-server/source/java/org/alfresco/repo/web/scripts/substitutionsuggestions/RmSubstitutionSuggestionsGet.java @@ -27,6 +27,7 @@ import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.capability.Capability; import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; +import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.repo.action.parameter.ParameterProcessorComponent; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; @@ -56,10 +57,6 @@ public class RmSubstitutionSuggestionsGet extends DeclarativeWebScript private final static String SUBSTITUTIONS_MODEL_KEY = "substitutions"; - private final static String RECORD_FOLDER_TYPE = "recordFolder"; - private final static String RECORD_CATEGORY_TYPE = "recordCategory"; - private final static String UNFILED_RECORD_FOLDER_TYPE = "unfiledRecordContainerChild"; - private final static String CREATE_CAPABILITY = "Create"; private final static String VIEW_CAPABILITY = "ViewRecords"; @@ -274,10 +271,9 @@ public class RmSubstitutionSuggestionsGet extends DeclarativeWebScript { // check node type QName type = nodeService.getType(nodeRef); - String typeLocalName = type.getLocalName(); - boolean isCorrectType = - (!unfiled && (RECORD_FOLDER_TYPE.equals(typeLocalName) || RECORD_CATEGORY_TYPE.equals(typeLocalName)) || - (unfiled && UNFILED_RECORD_FOLDER_TYPE.equals(typeLocalName))); + boolean isCorrectType = (!unfiled + && (RecordsManagementModel.TYPE_RECORD_FOLDER.equals(type) || RecordsManagementModel.TYPE_RECORD_CATEGORY + .equals(type)) || (unfiled && RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER.equals(type))); // check permissions boolean canView = false;