From fa485a9b31e0cdadbbdd47419961a38b43652da8 Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Thu, 22 May 2014 14:23:16 +0000 Subject: [PATCH] RM-1484 (User with Close Folders capability can't close the folder) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@71629 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../action/impl/CloseRecordFolderAction.java | 16 ++++++++++++++-- .../recordfolder/RecordFolderServiceImpl.java | 15 +-------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CloseRecordFolderAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CloseRecordFolderAction.java index a2dbece583..b44eb93bd2 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CloseRecordFolderAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/CloseRecordFolderAction.java @@ -19,6 +19,8 @@ package org.alfresco.module.org_alfresco_module_rm.action.impl; import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase; +import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.repository.NodeRef; @@ -37,11 +39,21 @@ public class CloseRecordFolderAction extends RMActionExecuterAbstractBase * org.alfresco.service.cmr.repository.NodeRef) */ @Override - protected void executeImpl(Action action, NodeRef actionedUponNodeRef) + protected void executeImpl(Action action, final NodeRef actionedUponNodeRef) { if (eligibleForAction(actionedUponNodeRef)) { - recordFolderService.closeRecordFolder(actionedUponNodeRef); + // do the work of creating the record as the system user + AuthenticationUtil.runAsSystem(new RunAsWork() + { + @Override + public Void doWork() throws Exception + { + recordFolderService.closeRecordFolder(actionedUponNodeRef); + + return null; + } + }); } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/recordfolder/RecordFolderServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/recordfolder/RecordFolderServiceImpl.java index 88a543ece9..cfe3e74da6 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/recordfolder/RecordFolderServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/recordfolder/RecordFolderServiceImpl.java @@ -32,8 +32,6 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl; -import org.alfresco.repo.security.authentication.AuthenticationUtil; -import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.NamespaceService; @@ -292,18 +290,7 @@ public class RecordFolderServiceImpl extends ServiceBaseImpl { if (!isRecordFolderClosed(nodeRef)) { - final NodeRef folderNodeRef = nodeRef; - // do the work of creating the record as the system user - AuthenticationUtil.runAsSystem(new RunAsWork() - { - @Override - public Void doWork() throws Exception - { - nodeService.setProperty(folderNodeRef, PROP_IS_CLOSED, true); - - return null; - } - }); + nodeService.setProperty(nodeRef, PROP_IS_CLOSED, true); } } else