Search in sources :

Example 1 with Group

use of org.alfresco.module.org_alfresco_module_rm.capability.Group in project records-management by Alfresco.

the class CapabilitiesGet method executeImpl.

/**
 * @see org.alfresco.repo.web.scripts.content.StreamContent#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest, org.springframework.extensions.webscripts.Status, org.springframework.extensions.webscripts.Cache)
 */
@Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) {
    Map<String, String> templateVars = req.getServiceMatch().getTemplateVars();
    String storeType = templateVars.get("store_type");
    String storeId = templateVars.get("store_id");
    String nodeId = templateVars.get("id");
    NodeRef nodeRef = null;
    if (StringUtils.isNotBlank(storeType) && StringUtils.isNotBlank(storeId) && StringUtils.isNotBlank(nodeId)) {
        nodeRef = new NodeRef(new StoreRef(storeType, storeId), nodeId);
    } else {
        // we are talking about the file plan node
        // TODO we are making the assumption there is only one file plan here!
        nodeRef = filePlanService.getFilePlanBySiteId(FilePlanService.DEFAULT_RM_SITE_ID);
        if (nodeRef == null) {
            throw new WebScriptException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "The default file plan node could not be found.");
        }
    }
    boolean grouped = false;
    String groupedString = req.getParameter("grouped");
    if (StringUtils.isNotBlank(groupedString)) {
        grouped = Boolean.parseBoolean(groupedString);
    }
    Map<String, Object> model = new TreeMap<String, Object>();
    if (grouped) {
        // Construct the map which is needed to build the model
        Map<String, GroupedCapabilities> groupedCapabilitiesMap = new TreeMap<String, GroupedCapabilities>();
        List<Group> groups = capabilityService.getGroups();
        for (Group group : groups) {
            String capabilityGroupTitle = group.getTitle();
            if (StringUtils.isNotBlank(capabilityGroupTitle)) {
                String capabilityGroupId = group.getId();
                List<Capability> capabilities = capabilityService.getCapabilitiesByGroupId(capabilityGroupId);
                for (Capability capability : capabilities) {
                    String capabilityName = capability.getName();
                    String capabilityTitle = capability.getTitle();
                    if (groupedCapabilitiesMap.containsKey(capabilityGroupId)) {
                        groupedCapabilitiesMap.get(capabilityGroupId).addCapability(capabilityName, capabilityTitle);
                    } else {
                        GroupedCapabilities groupedCapabilities = new GroupedCapabilities(capabilityGroupId, capabilityGroupTitle, capabilityName, capabilityTitle);
                        groupedCapabilities.addCapability(capabilityName, capabilityTitle);
                        groupedCapabilitiesMap.put(capabilityGroupId, groupedCapabilities);
                    }
                }
            }
        }
        model.put("groupedCapabilities", groupedCapabilitiesMap);
    } else {
        boolean includePrivate = false;
        String includePrivateString = req.getParameter("includeAll");
        if (StringUtils.isNotBlank(includePrivateString)) {
            includePrivate = Boolean.parseBoolean(includePrivateString);
        }
        Map<Capability, AccessStatus> map = capabilityService.getCapabilitiesAccessState(nodeRef, includePrivate);
        List<String> list = new ArrayList<String>(map.size());
        for (Map.Entry<Capability, AccessStatus> entry : map.entrySet()) {
            AccessStatus accessStatus = entry.getValue();
            if (!AccessStatus.DENIED.equals(accessStatus)) {
                Capability capability = entry.getKey();
                list.add(capability.getName());
            }
        }
        model.put("capabilities", list);
    }
    return model;
}
Also used : StoreRef(org.alfresco.service.cmr.repository.StoreRef) Group(org.alfresco.module.org_alfresco_module_rm.capability.Group) Capability(org.alfresco.module.org_alfresco_module_rm.capability.Capability) ArrayList(java.util.ArrayList) TreeMap(java.util.TreeMap) AccessStatus(org.alfresco.service.cmr.security.AccessStatus) NodeRef(org.alfresco.service.cmr.repository.NodeRef) WebScriptException(org.springframework.extensions.webscripts.WebScriptException) TreeMap(java.util.TreeMap) Map(java.util.Map)

Example 2 with Group

use of org.alfresco.module.org_alfresco_module_rm.capability.Group in project records-management by Alfresco.

the class CapabilityServiceImplTest method testGetAddRemoveGroups.

public void testGetAddRemoveGroups() throws Exception {
    doTestInTransaction(new Test<Void>() {

        @Override
        public Void run() throws Exception {
            Group auditGroup = capabilityService.getGroup("audit");
            assertNotNull(auditGroup);
            assertEquals(10, auditGroup.getIndex());
            assertEquals("Audit", auditGroup.getTitle());
            assertEquals("audit", auditGroup.getId());
            return null;
        }
    });
    doTestInTransaction(new Test<Void>() {

        @Override
        public Void run() throws Exception {
            int initialSize = capabilityService.getGroups().size();
            GroupImpl testGroup = new GroupImpl();
            testGroup.setId("testGroup");
            testGroup.setIndex(140);
            testGroup.setTitle("Test group");
            capabilityService.addGroup(testGroup);
            assertEquals(initialSize + 1, capabilityService.getGroups().size());
            Group group = capabilityService.getGroup("testGroup");
            assertNotNull(group);
            assertTrue(group.getId().equalsIgnoreCase("testGroup"));
            assertTrue(group.getTitle().equalsIgnoreCase("Test group"));
            assertTrue(group.getIndex() == 140);
            return null;
        }
    });
    doTestInTransaction(new Test<Void>() {

        @Override
        public Void run() throws Exception {
            Group testGroup = capabilityService.getGroup("testGroup");
            assertNotNull(testGroup);
            int initialSize = capabilityService.getGroups().size();
            capabilityService.removeGroup(testGroup);
            assertEquals(initialSize - 1, capabilityService.getGroups().size());
            return null;
        }
    });
}
Also used : Group(org.alfresco.module.org_alfresco_module_rm.capability.Group) GroupImpl(org.alfresco.module.org_alfresco_module_rm.capability.GroupImpl)

Aggregations

Group (org.alfresco.module.org_alfresco_module_rm.capability.Group)2 ArrayList (java.util.ArrayList)1 Map (java.util.Map)1 TreeMap (java.util.TreeMap)1 Capability (org.alfresco.module.org_alfresco_module_rm.capability.Capability)1 GroupImpl (org.alfresco.module.org_alfresco_module_rm.capability.GroupImpl)1 NodeRef (org.alfresco.service.cmr.repository.NodeRef)1 StoreRef (org.alfresco.service.cmr.repository.StoreRef)1 AccessStatus (org.alfresco.service.cmr.security.AccessStatus)1 WebScriptException (org.springframework.extensions.webscripts.WebScriptException)1