From aee8114b78b7a704e5aa56db7c6cc39f9b002394 Mon Sep 17 00:00:00 2001 From: Ana Bozianu Date: Fri, 6 Feb 2015 08:00:14 +0000 Subject: [PATCH] Merged revision(s) 96306 from modules/recordsmanagement/DEV/BUGFIXING/HEAD-2014_12_09: RM-1738 : Details page information is not shown for user with no permissions on parent folder - ran the check against the parent as system git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.3@96362 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../condition/ClosedCapabilityCondition.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/ClosedCapabilityCondition.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/ClosedCapabilityCondition.java index 84ae618591..83f2b9a357 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/ClosedCapabilityCondition.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/ClosedCapabilityCondition.java @@ -22,6 +22,8 @@ import java.util.List; import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.capability.declarative.AbstractCapabilityCondition; +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.RegexQNamePattern; @@ -44,17 +46,25 @@ public class ClosedCapabilityCondition extends AbstractCapabilityCondition } else if (recordService.isRecord(nodeRef)) { - List assocs = nodeService.getParentAssocs(nodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL); - for (ChildAssociationRef assoc : assocs) + final List assocs = nodeService.getParentAssocs(nodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL); + + result = AuthenticationUtil.runAsSystem(new RunAsWork() { - NodeRef parent = assoc.getParentRef(); - if (recordFolderService.isRecordFolder(parent) && - recordFolderService.isRecordFolderClosed(parent)) + @Override + public Boolean doWork() { - result = true; - break; + for (ChildAssociationRef assoc : assocs) + { + NodeRef parent = assoc.getParentRef(); + if (recordFolderService.isRecordFolder(parent) && recordFolderService.isRecordFolderClosed(parent)) + { + return true; + } + } + return false; } - } + }); + } return result; }