From b4aefce9dfebfcfd1d833ab26cd23bfac0209a70 Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Tue, 21 Oct 2014 19:46:55 +0000 Subject: [PATCH] RM-1661 (Performance on setting permissions at a high category level) * Fixed failing unit tests git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.1.0.x@88864 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../permissions/impl/RMPermissionServiceImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/rm-server/source/java/org/alfresco/repo/security/permissions/impl/RMPermissionServiceImpl.java b/rm-server/source/java/org/alfresco/repo/security/permissions/impl/RMPermissionServiceImpl.java index 9c1c263df3..44e653ffe5 100644 --- a/rm-server/source/java/org/alfresco/repo/security/permissions/impl/RMPermissionServiceImpl.java +++ b/rm-server/source/java/org/alfresco/repo/security/permissions/impl/RMPermissionServiceImpl.java @@ -18,12 +18,13 @@ */ package org.alfresco.repo.security.permissions.impl; +import static org.apache.commons.lang.StringUtils.isNotBlank; + import java.io.Serializable; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; @@ -300,9 +301,9 @@ public class RMPermissionServiceImpl extends PermissionServiceImpl @Override public void setInheritParentPermissions(final NodeRef nodeRef, boolean inheritParentPermissions) { - if (nodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT)) + final String adminRole = getAdminRole(nodeRef); + if (nodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT) && isNotBlank(adminRole)) { - final String adminRole = getAdminRole(nodeRef); if (inheritParentPermissions) { Set accessPermissions = getAllSetPermissions(nodeRef); @@ -331,11 +332,12 @@ public class RMPermissionServiceImpl extends PermissionServiceImpl private String getAdminRole(NodeRef nodeRef) { + String adminRole = null; NodeRef filePlan = getFilePlanService().getFilePlan(nodeRef); - if (filePlan == null) + if (filePlan != null) { - throw new AlfrescoRuntimeException("The file plan could not be found for the node '" + nodeRef + "'."); + adminRole = authorityService.getName(AuthorityType.GROUP, FilePlanRoleService.ROLE_ADMIN + filePlan.getId()); } - return authorityService.getName(AuthorityType.GROUP, FilePlanRoleService.ROLE_ADMIN + filePlan.getId()); + return adminRole; } }