diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java index 4b78cb894c..bddc21a8e7 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java @@ -151,4 +151,12 @@ public interface CapabilityService * @param group The group which should be removed */ void removeGroup(Group group); + + /** + * Check if the current user has the given capability. + * + * @param capabilityName + * @return + */ + boolean hasCapability(NodeRef nodeRef, String capabilityName); } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityServiceImpl.java index 648d401ffa..df5ca92702 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityServiceImpl.java @@ -282,4 +282,24 @@ public class CapabilityServiceImpl implements CapabilityService groups.remove(group.getId()); } + + /** + * @see org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService#hasCapability(org.alfresco.service.cmr.repository.NodeRef, java.lang.String) + */ + @Override + public boolean hasCapability(NodeRef nodeRef, String capabilityName) + { + Capability capability = getCapability(capabilityName); + if (capability != null) + { + AccessStatus accessStatus = getCapabilityAccessState(nodeRef, capabilityName); + + if (accessStatus.equals(AccessStatus.ALLOWED)) + { + return true; + } + } + + return false; + } } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java index 52fe863632..49b0d04e82 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java @@ -154,6 +154,14 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS this.capabilityService = capabilityService; } + /** + * @return the nodeService + */ + protected CapabilityService getCapabilityService() + { + return this.capabilityService; + } + /** * @param dictionaryService dictionary service */