mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
RM-563 (Add group id and title to Capability API and definitions)
* Changed the Role class so that the i18n properties don't have to be maintained on both sides (server and share) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@44244 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -2,14 +2,14 @@
|
||||
<#macro roleJSON role>
|
||||
<#escape x as jsonUtils.encodeJSONString(x)>
|
||||
{
|
||||
"name": "${role.name}",
|
||||
"displayLabel": "${role.displayLabel}",
|
||||
"capabilities" :
|
||||
[
|
||||
<#list role.capabilities as capability>
|
||||
"${capability}"<#if capability_has_next>,</#if>
|
||||
</#list>
|
||||
]
|
||||
"name": "${role.name}",
|
||||
"displayLabel": "${role.displayLabel}",
|
||||
"capabilities":
|
||||
{
|
||||
<#list role.capabilities?keys as capability>
|
||||
"${capability}": "${role.capabilities[capability]}" <#if capability_has_next>,</#if>
|
||||
</#list>
|
||||
}
|
||||
}
|
||||
</#escape>
|
||||
</#macro>
|
@@ -25,14 +25,13 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.security.Role;
|
||||
import org.alfresco.repo.node.NodeServicePolicies;
|
||||
import org.alfresco.repo.policy.Behaviour.NotificationFrequency;
|
||||
import org.alfresco.repo.policy.JavaBehaviour;
|
||||
import org.alfresco.repo.policy.PolicyComponent;
|
||||
import org.alfresco.repo.policy.Behaviour.NotificationFrequency;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
@@ -250,7 +249,7 @@ public class ModelSecurityServiceImpl implements ModelSecurityService,
|
||||
Set<Role> roles = securityService.getRolesByUser(filePlan, AuthenticationUtil.getFullyAuthenticatedUser());
|
||||
for (Role role : roles)
|
||||
{
|
||||
if (Collections.disjoint(role.getCapabilities(), artifact.getCapilityNames()) == false)
|
||||
if (Collections.disjoint(role.getCapabilities().keySet(), artifact.getCapilityNames()) == false)
|
||||
{
|
||||
result = true;
|
||||
break;
|
||||
|
@@ -578,7 +578,7 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
{
|
||||
String name = getShortRoleName(authorityService.getShortName(roleAuthority), rmRootNode);
|
||||
String displayLabel = authorityService.getAuthorityDisplayName(roleAuthority);
|
||||
Set<String> capabilities = getCapabilitiesImpl(rmRootNode, roleAuthority);
|
||||
Map<String, String> capabilities = getCapabilitiesImpl(rmRootNode, roleAuthority);
|
||||
|
||||
Role role = new Role(name, displayLabel, capabilities, roleAuthority);
|
||||
result.add(role);
|
||||
@@ -608,7 +608,7 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
{
|
||||
String name = getShortRoleName(authorityService.getShortName(roleAuthority), rmRootNode);
|
||||
String displayLabel = authorityService.getAuthorityDisplayName(roleAuthority);
|
||||
Set<String> capabilities = getCapabilitiesImpl(rmRootNode, roleAuthority);
|
||||
Map<String, String> capabilities = getCapabilitiesImpl(rmRootNode, roleAuthority);
|
||||
|
||||
Role role = new Role(name, displayLabel, capabilities, roleAuthority);
|
||||
result.add(role);
|
||||
@@ -670,7 +670,7 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
{
|
||||
String name = getShortRoleName(authorityService.getShortName(roleAuthority), rmRootNode);
|
||||
String displayLabel = authorityService.getAuthorityDisplayName(roleAuthority);
|
||||
Set<String> capabilities = getCapabilitiesImpl(rmRootNode, roleAuthority);
|
||||
Map<String, String> capabilities = getCapabilitiesImpl(rmRootNode, roleAuthority);
|
||||
|
||||
result = new Role(name, displayLabel, capabilities, roleAuthority);
|
||||
}
|
||||
@@ -686,22 +686,21 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
* @param roleAuthority
|
||||
* @return
|
||||
*/
|
||||
private Set<String> getCapabilitiesImpl(NodeRef rmRootNode, String roleAuthority)
|
||||
private Map<String, String> getCapabilitiesImpl(NodeRef rmRootNode, String roleAuthority)
|
||||
{
|
||||
Set<AccessPermission> permissions = permissionService.getAllSetPermissions(rmRootNode);
|
||||
Set<String> capabilities = new HashSet<String>(52);
|
||||
Map<String, String> capabilities = new HashMap<String, String>(52);
|
||||
for (AccessPermission permission : permissions)
|
||||
|
||||
{
|
||||
if (permission.getAuthority().equals(roleAuthority) == true)
|
||||
{
|
||||
String capabilityName = permission.getPermission();
|
||||
if (capabilityService.getCapability(capabilityName) != null)
|
||||
Capability capability = capabilityService.getCapability(capabilityName);
|
||||
if (capability != null)
|
||||
{
|
||||
capabilities.add(permission.getPermission());
|
||||
capabilities.put(capabilityName, capability.getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return capabilities;
|
||||
@@ -778,7 +777,7 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
authorityService.addAuthority(allRoleGroup, roleGroup);
|
||||
|
||||
// Assign the various capabilities to the group on the root records management node
|
||||
Set<String> capStrings = new HashSet<String>(53);
|
||||
Map<String, String> capStrings = new HashMap<String, String>(53);
|
||||
if (capabilities != null)
|
||||
{
|
||||
for (Capability capability : capabilities)
|
||||
@@ -789,7 +788,7 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
// Create the role
|
||||
for (Capability capability : capabilities)
|
||||
{
|
||||
capStrings.add(capability.getName());
|
||||
capStrings.put(capability.getName(), capability.getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -823,10 +822,10 @@ public class RecordsManagementSecurityServiceImpl implements RecordsManagementSe
|
||||
permissionService.setPermission(rmRootNode, roleAuthority, capability.getName(), true);
|
||||
}
|
||||
|
||||
Set<String> capStrings = new HashSet<String>(capabilities.size());
|
||||
Map<String, String> capStrings = new HashMap<String, String>(capabilities.size());
|
||||
for (Capability capability : capabilities)
|
||||
{
|
||||
capStrings.add(capability.getName());
|
||||
capStrings.put(capability.getName(), capability.getTitle());
|
||||
}
|
||||
return new Role(role, roleDisplayLabel, capStrings, roleAuthority);
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.alfresco.module.org_alfresco_module_rm.security;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Records management role class
|
||||
@@ -29,7 +29,7 @@ public class Role
|
||||
{
|
||||
private String name;
|
||||
private String displayLabel;
|
||||
private Set<String> capabilities;
|
||||
private Map<String, String> capabilities;
|
||||
private String roleGroupName;
|
||||
|
||||
/**
|
||||
@@ -37,7 +37,7 @@ public class Role
|
||||
* @param displayLabel
|
||||
* @param capabilities
|
||||
*/
|
||||
public Role(String name, String displayLabel, Set<String> capabilities, String roleGroupName)
|
||||
public Role(String name, String displayLabel, Map<String, String> capabilities, String roleGroupName)
|
||||
{
|
||||
this.name = name;
|
||||
this.displayLabel = displayLabel;
|
||||
@@ -64,7 +64,7 @@ public class Role
|
||||
/**
|
||||
* @return the capabilities
|
||||
*/
|
||||
public Set<String> getCapabilities()
|
||||
public Map<String, String> getCapabilities()
|
||||
{
|
||||
return capabilities;
|
||||
}
|
||||
|
@@ -200,8 +200,8 @@ public class DeclarativeCapabilityTest extends BaseRMTestCase
|
||||
Role role = new ArrayList<Role>(roles).get(0);
|
||||
assertNotNull(role);
|
||||
|
||||
Set<String> roleCapabilities = role.getCapabilities();
|
||||
if (roleCapabilities.contains(capability.getName()) == true && conditionResult == true)
|
||||
Map<String, String> roleCapabilities = role.getCapabilities();
|
||||
if (roleCapabilities.containsKey(capability.getName()) == true && conditionResult == true)
|
||||
{
|
||||
assertEquals("User " + userName + " has the role " + role.getDisplayLabel() +
|
||||
" so we expect access to be allowed for capability " + capability.getName() + " on the object " +
|
||||
|
Reference in New Issue
Block a user