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
This commit is contained in:
Ana Bozianu
2015-02-06 08:00:14 +00:00
parent 52d6c60ead
commit aee8114b78

View File

@@ -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<ChildAssociationRef> assocs = nodeService.getParentAssocs(nodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef assoc : assocs)
final List<ChildAssociationRef> assocs = nodeService.getParentAssocs(nodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
result = AuthenticationUtil.runAsSystem(new RunAsWork<Boolean>()
{
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;
}