@Test public void saveMapPolicy() { // create a map final PortfolioStructureMap map = epFrontendManager.createAndPersistPortfolioDefaultMap(ident1, "Policies", "Description"); final PortfolioStructure page1 = epFrontendManager.createAndPersistPortfolioPage(map, "Page policies", "Page description"); assertNotNull(page1); dbInstance.commitAndCloseSession(); // policies are empty final List<EPMapPolicy> policies = epFrontendManager.getMapPolicies(map); assertEquals(0, policies.size()); // owner policy // save a user policy final EPMapPolicy userPolicy = new EPMapPolicy(); userPolicy.setType(Type.user); userPolicy.getIdentities().add(ident2); epFrontendManager.updateMapPolicies(map, Collections.singletonList(userPolicy)); dbInstance.commitAndCloseSession(); // one policy final List<EPMapPolicy> policies1 = epFrontendManager.getMapPolicies(map); assertEquals(1, policies1.size()); // check visiblity (is owner) assertTrue(epFrontendManager.isMapVisible(ident1, map.getOlatResource())); // check visibility (is in policy) assertTrue(epFrontendManager.isMapVisible(ident2, map.getOlatResource())); // check not visible (not in policy) assertFalse(epFrontendManager.isMapVisible(ident3, map.getOlatResource())); }
/** Same workflow as the repository. This workflow is pretty critical. */ @Test public void isStructuredMapOwner() { final OLATResource resource = epStructureManager.createPortfolioMapTemplateResource(); // create a repository entry final RepositoryEntry addedEntry = repositoryManager.createRepositoryEntryInstance(ident1.getName()); addedEntry.setCanDownload(false); addedEntry.setCanLaunch(true); addedEntry.setDisplayname("test repo"); addedEntry.setResourcename("-"); addedEntry.setAccess(RepositoryEntry.ACC_OWNERS); // Set the resource on the repository entry and save the entry. final OLATResource ores = resourceManager.findOrPersistResourceable(resource); addedEntry.setOlatResource(ores); // create security group final SecurityGroup newGroup = securityManager.createAndPersistSecurityGroup(); securityManager.createAndPersistPolicy(newGroup, Constants.PERMISSION_ACCESS, newGroup); securityManager.createAndPersistPolicy( newGroup, Constants.PERMISSION_HASROLE, EPStructureManager.ORES_MAPOWNER); securityManager.addIdentityToSecurityGroup(ident1, newGroup); addedEntry.setOwnerGroup(newGroup); repositoryManager.saveRepositoryEntry(addedEntry); dbInstance.commitAndCloseSession(); // create the template owned by ident1 final PortfolioStructureMap template = epStructureManager.createAndPersistPortfolioMapTemplateFromEntry(ident1, addedEntry); final PortfolioStructure page1 = epFrontendManager.createAndPersistPortfolioPage(template, "Page title", "Page description"); assertNotNull(page1); dbInstance.commitAndCloseSession(); // assign the template to ident2 final PortfolioStructureMap map = epFrontendManager.assignStructuredMapToUser(ident2, template, null, null, null, null); assertNotNull(map); dbInstance.commitAndCloseSession(); // check if ident2 is owner of the map assertTrue(epFrontendManager.isMapOwner(ident2, map.getOlatResource())); // check if ident1 is not the owner of the map assertFalse(epFrontendManager.isMapOwner(ident1, map.getOlatResource())); // check if ident1 is owner of the template assertTrue(epFrontendManager.isMapOwner(ident1, template.getOlatResource())); }
@Test public void isMapOwner() { // create a map final PortfolioStructureMap originalMap = epFrontendManager.createAndPersistPortfolioDefaultMap(ident1, "Title", "Description"); final PortfolioStructure page1 = epFrontendManager.createAndPersistPortfolioPage( originalMap, "Page title", "Page description"); assertNotNull(page1); dbInstance.commitAndCloseSession(); // check if ident1 is owner assertTrue(epFrontendManager.isMapOwner(ident1, originalMap.getOlatResource())); // check if ident2 is not owner assertFalse(epFrontendManager.isMapOwner(ident2, originalMap.getOlatResource())); }
@Test public void allMapPolicies() { // create a map final PortfolioStructureMap map = epFrontendManager.createAndPersistPortfolioDefaultMap(ident1, "Policies", "Description"); final PortfolioStructure page1 = epFrontendManager.createAndPersistPortfolioPage(map, "Page policies", "Page description"); assertNotNull(page1); dbInstance.commitAndCloseSession(); // save a list of policies final List<EPMapPolicy> policies = new ArrayList<EPMapPolicy>(); // user policy final EPMapPolicy userPolicy = new EPMapPolicy(); userPolicy.setType(Type.user); userPolicy.getIdentities().add(ident2); userPolicy.getIdentities().add(ident3); policies.add(userPolicy); // invitation final Invitation invitation = securityManager.createAndPersistInvitation(); invitation.setFirstName("John"); invitation.setLastName("Doe"); invitation.setMail("*****@*****.**"); final EPMapPolicy invitationPolicy = new EPMapPolicy(); invitationPolicy.setType(Type.invitation); invitationPolicy.setInvitation(invitation); policies.add(invitationPolicy); epFrontendManager.updateMapPolicies(map, policies); dbInstance.commitAndCloseSession(); // check visiblity (is owner) assertTrue(epFrontendManager.isMapVisible(ident1, map.getOlatResource())); // check visibility (is in policy) assertTrue(epFrontendManager.isMapVisible(ident2, map.getOlatResource())); // check visible (is in policy) assertTrue(epFrontendManager.isMapVisible(ident3, map.getOlatResource())); // retrieved policies final List<EPMapPolicy> savedPolicies = epFrontendManager.getMapPolicies(map); assertTrue(!savedPolicies.isEmpty()); }