diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/security/ExtendedSecurityServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/security/ExtendedSecurityServiceImpl.java index 6ad6317d9d..b4c491adc4 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/security/ExtendedSecurityServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/security/ExtendedSecurityServiceImpl.java @@ -177,20 +177,16 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl @Override public Set getReaders(NodeRef nodeRef) { - Set result = null; + ParameterCheck.mandatory("nodeRef", nodeRef); + Set result = Collections.EMPTY_SET; Pair iprGroups = getIPRGroups(nodeRef); if (iprGroups != null) { - result = new HashSet(authorityService.getContainedAuthorities(null, iprGroups.getFirst(), true)); - result.remove(iprGroups.getSecond()); - } - else - { - result = Collections.EMPTY_SET; + result = getAuthorities(iprGroups.getFirst()); } - return result; + return result; } /** @@ -200,20 +196,29 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl @Override public Set getWriters(NodeRef nodeRef) { - Set result = null; + ParameterCheck.mandatory("nodeRef", nodeRef); + Set result = Collections.EMPTY_SET; Pair iprGroups = getIPRGroups(nodeRef); if (iprGroups != null) { - result = authorityService.getContainedAuthorities(null, iprGroups.getSecond(), true); - } - else - { - result = Collections.EMPTY_SET; + result = getAuthorities(iprGroups.getSecond()); } + return result; + } + + /** + * Helper to get authorities for a given group + * + * @param group group name + * @return Set immediate authorities + */ + private Set getAuthorities(String group) + { + Set result = new HashSet(); + result.addAll(authorityService.getContainedAuthorities(null, group, true)); return result; - } /** @@ -222,6 +227,8 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl @Override public void set(NodeRef nodeRef, Pair, Set> readersAndWriters) { + ParameterCheck.mandatory("nodeRef", nodeRef); + set(nodeRef, readersAndWriters.getFirst(), readersAndWriters.getSecond()); } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/repo/security/permissions/impl/ExtendedPermissionServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/repo/security/permissions/impl/ExtendedPermissionServiceImpl.java index 8aecc11085..3080710bfe 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/repo/security/permissions/impl/ExtendedPermissionServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/repo/security/permissions/impl/ExtendedPermissionServiceImpl.java @@ -147,7 +147,6 @@ public class ExtendedPermissionServiceImpl extends PermissionServiceImpl impleme AccessStatus result = AccessStatus.UNDETERMINED; if (nodeService.exists(nodeRef)) { - // permission pre-processors List preProcessors = permissionProcessorRegistry.getPermissionPreProcessors(); for (PermissionPreProcessor preProcessor : preProcessors)