mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-07 18:25:23 +00:00
Re-instate web site group test. Bug Fixes and first implementation of web site role precedence rules.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14241 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
parent
a687ac1b1b
commit
9715847cf1
@ -59,6 +59,18 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<!-- Site role precedence - higher number - more important role -->
|
||||||
|
<bean id="siteRoleComparator" class="org.alfresco.repo.site.RoleComparatorImpl" init-method="init">
|
||||||
|
<property name="rolePrecedence">
|
||||||
|
<map>
|
||||||
|
<entry key="SiteManager" value="4" />
|
||||||
|
<entry key="SiteCollaborator" value="3" />
|
||||||
|
<entry key="SiteContributor" value="2" />
|
||||||
|
<entry key="SiteConsumer" value="1" />
|
||||||
|
</map>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
<bean id="siteService" class="org.alfresco.repo.site.SiteServiceImpl" init-method="init">
|
<bean id="siteService" class="org.alfresco.repo.site.SiteServiceImpl" init-method="init">
|
||||||
<property name="nodeService" ref="NodeService"/>
|
<property name="nodeService" ref="NodeService"/>
|
||||||
<property name="fileFolderService" ref="FileFolderService"/>
|
<property name="fileFolderService" ref="FileFolderService"/>
|
||||||
@ -77,6 +89,9 @@
|
|||||||
<value>./${spaces.company_home.childname}/st:sites</value>
|
<value>./${spaces.company_home.childname}/st:sites</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="tenantService" ref="tenantService"/>
|
<property name="tenantService" ref="tenantService"/>
|
||||||
|
<property name="roleComparator" ref="siteRoleComparator" />
|
||||||
|
|
||||||
|
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="siteServiceScript" parent="baseJavaScriptExtension" class="org.alfresco.repo.site.script.ScriptSiteService">
|
<bean id="siteServiceScript" parent="baseJavaScriptExtension" class="org.alfresco.repo.site.script.ScriptSiteService">
|
||||||
|
66
source/java/org/alfresco/repo/site/RoleComparatorImpl.java
Normal file
66
source/java/org/alfresco/repo/site/RoleComparatorImpl.java
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2009 Alfresco Software Limited.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
* As a special exception to the terms and conditions of version 2.0 of
|
||||||
|
* the GPL, you may redistribute this Program in connection with Free/Libre
|
||||||
|
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
||||||
|
* FLOSS exception. You should have recieved a copy of the text describing
|
||||||
|
* the FLOSS exception, and it is also available here:
|
||||||
|
* http://www.alfresco.com/legal/licensing"
|
||||||
|
*/
|
||||||
|
package org.alfresco.repo.site;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/* package scope */class RoleComparatorImpl implements Comparator<String>
|
||||||
|
{
|
||||||
|
private Map<String, Integer> rolePrecedence;
|
||||||
|
|
||||||
|
public RoleComparatorImpl()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public RoleComparatorImpl(Map<String, Integer> rolePrecedence)
|
||||||
|
{
|
||||||
|
this.setRolePrecedence(rolePrecedence);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(String first, String second)
|
||||||
|
{
|
||||||
|
int firstRank = getRolePrecedence().get(first);
|
||||||
|
int secondRank = getRolePrecedence().get(second);
|
||||||
|
|
||||||
|
return secondRank - firstRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public void setRolePrecedence(Map<String, Integer> rolePrecedence)
|
||||||
|
{
|
||||||
|
this.rolePrecedence = rolePrecedence;
|
||||||
|
}
|
||||||
|
public Map<String, Integer> getRolePrecedence()
|
||||||
|
{
|
||||||
|
return rolePrecedence;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
package org.alfresco.repo.site;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.SortedSet;
|
||||||
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
|
||||||
|
public class RoleComparatorImplTest extends TestCase
|
||||||
|
{
|
||||||
|
public void testRoleComparator()
|
||||||
|
{
|
||||||
|
Map<String, Integer> rolePrecedence = new HashMap<String, Integer>();
|
||||||
|
rolePrecedence.put("SiteManager", 4);
|
||||||
|
rolePrecedence.put("SiteCollaborator", 3);
|
||||||
|
rolePrecedence.put("SiteContributor", 2);
|
||||||
|
rolePrecedence.put("SiteConsumer", 1);
|
||||||
|
Comparator<String> roleComparator = new RoleComparatorImpl(rolePrecedence);
|
||||||
|
|
||||||
|
|
||||||
|
List<String> roles = new ArrayList<String>();
|
||||||
|
roles.add("SiteConsumer");
|
||||||
|
assertEquals("SiteConsumer", sort(roles, roleComparator));
|
||||||
|
roles.add("SiteConsumer");
|
||||||
|
assertEquals("SiteConsumer", sort(roles, roleComparator));
|
||||||
|
roles.add("SiteContributor");
|
||||||
|
assertEquals("SiteContributor", sort(roles, roleComparator));
|
||||||
|
roles.add("SiteConsumer");
|
||||||
|
assertEquals("SiteContributor", sort(roles, roleComparator));
|
||||||
|
roles.add("SiteManager");
|
||||||
|
assertEquals("SiteManager", sort(roles, roleComparator));
|
||||||
|
roles.add("SiteCollaborator");
|
||||||
|
assertEquals("SiteManager", sort(roles, roleComparator));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private String sort(List<String> list, Comparator comparator)
|
||||||
|
{
|
||||||
|
SortedSet<String> sortedRoles = new TreeSet<String>(comparator);
|
||||||
|
for (String role : list)
|
||||||
|
{
|
||||||
|
sortedRoles.add(role);
|
||||||
|
}
|
||||||
|
return sortedRoles.first();
|
||||||
|
}
|
||||||
|
}
|
@ -26,12 +26,15 @@ package org.alfresco.repo.site;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.SortedSet;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
import java.util.TreeSet;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
@ -133,6 +136,7 @@ public class SiteServiceImpl implements SiteService, SiteModel
|
|||||||
private TenantService tenantService;
|
private TenantService tenantService;
|
||||||
private TenantAdminService tenantAdminService;
|
private TenantAdminService tenantAdminService;
|
||||||
private RetryingTransactionHelper retryingTransactionHelper;
|
private RetryingTransactionHelper retryingTransactionHelper;
|
||||||
|
private Comparator<String> roleComparator ;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1026,6 +1030,11 @@ public class SiteServiceImpl implements SiteService, SiteModel
|
|||||||
members.put(group, permission);
|
members.put(group, permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// No name filter add this group
|
||||||
|
members.put(group, permission);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1102,8 +1111,23 @@ public class SiteServiceImpl implements SiteService, SiteModel
|
|||||||
List<String> roles = getMembersRoles(shortName, authorityName);
|
List<String> roles = getMembersRoles(shortName, authorityName);
|
||||||
if (roles.isEmpty() == false)
|
if (roles.isEmpty() == false)
|
||||||
{
|
{
|
||||||
|
if(roleComparator != null)
|
||||||
|
{
|
||||||
|
// Need to sort the roles into the most important first.
|
||||||
|
SortedSet<String> sortedRoles = new TreeSet<String>(roleComparator);
|
||||||
|
for (String role : roles)
|
||||||
|
{
|
||||||
|
sortedRoles.add(role);
|
||||||
|
}
|
||||||
|
result = sortedRoles.first();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// don't search on precedence
|
||||||
result = roles.get(0);
|
result = roles.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1126,6 +1150,8 @@ public class SiteServiceImpl implements SiteService, SiteModel
|
|||||||
* Helper method to get the permission groups for a given authority on a site.
|
* Helper method to get the permission groups for a given authority on a site.
|
||||||
* Returns empty List if the user does not have a explicit membership to the site.
|
* Returns empty List if the user does not have a explicit membership to the site.
|
||||||
*
|
*
|
||||||
|
* A user permission will take precedence over a permission obtained via a group.
|
||||||
|
*
|
||||||
* @param siteShortName site short name
|
* @param siteShortName site short name
|
||||||
* @param authorityName authority name
|
* @param authorityName authority name
|
||||||
* @return List<String> Permission groups, empty list if no explicit membership set
|
* @return List<String> Permission groups, empty list if no explicit membership set
|
||||||
@ -1134,6 +1160,24 @@ public class SiteServiceImpl implements SiteService, SiteModel
|
|||||||
{
|
{
|
||||||
List<String> result = new ArrayList<String>(5);
|
List<String> result = new ArrayList<String>(5);
|
||||||
Set<String> roles = this.permissionService.getSettablePermissions(SiteModel.TYPE_SITE);
|
Set<String> roles = this.permissionService.getSettablePermissions(SiteModel.TYPE_SITE);
|
||||||
|
|
||||||
|
for (String role : roles)
|
||||||
|
{
|
||||||
|
String roleGroup = getSiteRoleGroup(siteShortName, role, true);
|
||||||
|
Set<String> authorities = this.authorityService.getContainedAuthorities(AuthorityType.USER, roleGroup, true);
|
||||||
|
if (authorities.contains(authorityName) == true)
|
||||||
|
{
|
||||||
|
result.add(roleGroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If there are user permissions then they take priority
|
||||||
|
if(result.size() > 0)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now do a deep search through all users and groups
|
||||||
for (String role : roles)
|
for (String role : roles)
|
||||||
{
|
{
|
||||||
String roleGroup = getSiteRoleGroup(siteShortName, role, true);
|
String roleGroup = getSiteRoleGroup(siteShortName, role, true);
|
||||||
@ -1549,4 +1593,13 @@ public class SiteServiceImpl implements SiteService, SiteModel
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setRoleComparator(Comparator<String> roleComparator) {
|
||||||
|
this.roleComparator = roleComparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Comparator<String> getRoleComparator() {
|
||||||
|
return roleComparator;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -68,8 +68,11 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
private static final String USER_ONE = "UserOne_SiteServiceImplTest";
|
private static final String USER_ONE = "UserOne_SiteServiceImplTest";
|
||||||
private static final String USER_TWO = "UserTwo_SiteServiceImplTest";
|
private static final String USER_TWO = "UserTwo_SiteServiceImplTest";
|
||||||
private static final String USER_THREE = "UserThree_SiteServiceImplTest";
|
private static final String USER_THREE = "UserThree_SiteServiceImplTest";
|
||||||
|
private static final String USER_FOUR = "UserFour_SiteServiceImplTest";
|
||||||
private static final String GROUP_ONE = "GrpOne_SiteServiceImplTest";
|
private static final String GROUP_ONE = "GrpOne_SiteServiceImplTest";
|
||||||
private static final String GROUP_TWO = "GrpTwo_SiteServiceImplTest";
|
private static final String GROUP_TWO = "GrpTwo_SiteServiceImplTest";
|
||||||
|
private static final String GROUP_THREE = "GrpThree_SiteServiceImplTest";
|
||||||
|
private static final String GROUP_FOUR = "GrpFour_SiteServiceImplTest";
|
||||||
|
|
||||||
private SiteService siteService;
|
private SiteService siteService;
|
||||||
private ScriptService scriptService;
|
private ScriptService scriptService;
|
||||||
@ -82,6 +85,8 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
|
|
||||||
private String groupOne;
|
private String groupOne;
|
||||||
private String groupTwo;
|
private String groupTwo;
|
||||||
|
private String groupThree;
|
||||||
|
private String groupFour;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called during the transaction setup
|
* Called during the transaction setup
|
||||||
@ -104,14 +109,24 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
createUser(USER_ONE);
|
createUser(USER_ONE);
|
||||||
createUser(USER_TWO);
|
createUser(USER_TWO);
|
||||||
createUser(USER_THREE);
|
createUser(USER_THREE);
|
||||||
|
createUser(USER_FOUR);
|
||||||
|
|
||||||
// Create the test groups
|
// Create the test groups
|
||||||
this.groupOne = this.authorityService.createAuthority(AuthorityType.GROUP, null, GROUP_ONE);
|
this.groupOne = this.authorityService.createAuthority(AuthorityType.GROUP, null, GROUP_ONE);
|
||||||
this.authorityService.addAuthority(this.groupOne, USER_TWO);
|
this.authorityService.addAuthority(this.groupOne, USER_TWO);
|
||||||
|
|
||||||
this.groupTwo = this.authorityService.createAuthority(AuthorityType.GROUP, null, GROUP_TWO);
|
this.groupTwo = this.authorityService.createAuthority(AuthorityType.GROUP, null, GROUP_TWO);
|
||||||
this.authorityService.addAuthority(this.groupTwo, USER_TWO);
|
this.authorityService.addAuthority(this.groupTwo, USER_TWO);
|
||||||
this.authorityService.addAuthority(this.groupTwo, USER_THREE);
|
this.authorityService.addAuthority(this.groupTwo, USER_THREE);
|
||||||
|
|
||||||
|
this.groupThree = this.authorityService.createAuthority(AuthorityType.GROUP, null, GROUP_THREE);
|
||||||
|
this.authorityService.addAuthority(this.groupThree, USER_TWO);
|
||||||
|
this.authorityService.addAuthority(this.groupThree, USER_THREE);
|
||||||
|
|
||||||
|
this.groupFour = this.authorityService.createAuthority(AuthorityType.GROUP, this.groupThree, GROUP_FOUR);
|
||||||
|
this.authorityService.addAuthority(this.groupFour, USER_FOUR);
|
||||||
|
|
||||||
|
|
||||||
// Set the current authentication
|
// Set the current authentication
|
||||||
this.authenticationComponent.setCurrentUser(USER_ONE);
|
this.authenticationComponent.setCurrentUser(USER_ONE);
|
||||||
}
|
}
|
||||||
@ -684,105 +699,140 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO MER Temp remove this test - failing.
|
public void testGroupMembership()
|
||||||
// public void testGroupMembership()
|
{
|
||||||
// {
|
// USER_ONE - SiteAdmin
|
||||||
// // USER_ONE - SiteAdmin
|
// GROUP_ONE - USER_TWO
|
||||||
// // GROUP_ONE - USER_TWO
|
// GROUP_TWO - USER_TWO, USER_THREE
|
||||||
// // GROUP_TWO - USER_TWO, USER_THREE
|
|
||||||
//
|
// Create a site as user one
|
||||||
// // Create a site as user one
|
this.siteService.createSite(TEST_SITE_PRESET, "testMembership", TEST_TITLE, TEST_DESCRIPTION, SiteVisibility.PRIVATE);
|
||||||
// this.siteService.createSite(TEST_SITE_PRESET, "testMembership", TEST_TITLE, TEST_DESCRIPTION, SiteVisibility.PRIVATE);
|
|
||||||
//
|
// Get the members of the site and check that user one is a manager
|
||||||
// // Get the members of the site and check that user one is a manager
|
Map<String, String> members = this.siteService.listMembers("testMembership", null, null, 0);
|
||||||
// Map<String, String> members = this.siteService.listMembers("testMembership", null, null, 0);
|
assertNotNull(members);
|
||||||
// assertNotNull(members);
|
assertEquals(1, members.size());
|
||||||
// assertEquals(1, members.size());
|
assertTrue(members.containsKey(USER_ONE));
|
||||||
// assertTrue(members.containsKey(USER_ONE));
|
assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
|
||||||
//
|
/**
|
||||||
// // Add a group
|
* Test of isMember - ONE is member, TWO and THREE are not
|
||||||
// this.siteService.setMembership("testMembership", this.groupTwo, SiteModel.SITE_CONSUMER);
|
*/
|
||||||
// // - is the group in the list of all members?
|
assertTrue(this.siteService.isMember("testMembership", USER_ONE));
|
||||||
// members = this.siteService.listMembers("testMembership", null, null, 0);
|
assertTrue(!this.siteService.isMember("testMembership", USER_TWO));
|
||||||
// assertNotNull(members);
|
assertTrue(!this.siteService.isMember("testMembership", USER_THREE));
|
||||||
// assertEquals(2, members.size());
|
|
||||||
// assertTrue(members.containsKey(USER_ONE));
|
/**
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
* Add a group (GROUP_TWO) with role consumer
|
||||||
// assertTrue(members.containsKey(this.groupTwo));
|
*/
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, members.get(this.groupTwo));
|
this.siteService.setMembership("testMembership", this.groupTwo, SiteModel.SITE_CONSUMER);
|
||||||
// // - is the user in the expanded list?
|
// - is the group in the list of all members?
|
||||||
// members = this.siteService.listMembers("testMembership", null, null, 0, true);
|
members = this.siteService.listMembers("testMembership", null, null, 0);
|
||||||
// assertNotNull(members);
|
|
||||||
// assertEquals(3, members.size());
|
assertNotNull(members);
|
||||||
// assertTrue(members.containsKey(USER_ONE));
|
assertEquals(2, members.size());
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
assertTrue(members.containsKey(USER_ONE));
|
||||||
// assertTrue(members.containsKey(USER_TWO));
|
assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, members.get(USER_TWO));
|
assertTrue(members.containsKey(this.groupTwo));
|
||||||
// assertTrue(members.containsKey(USER_THREE));
|
assertEquals(SiteModel.SITE_CONSUMER, members.get(this.groupTwo));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, members.get(USER_THREE));
|
|
||||||
// // - is the user a member?
|
// - is the user in the expanded list?
|
||||||
// assertTrue(this.siteService.isMember("testMembership", USER_ONE));
|
members = this.siteService.listMembers("testMembership", null, null, 0, true);
|
||||||
// assertTrue(this.siteService.isMember("testMembership", USER_TWO));
|
assertNotNull(members);
|
||||||
// assertTrue(this.siteService.isMember("testMembership", USER_THREE));
|
assertEquals(3, members.size());
|
||||||
// // - is the group a member?
|
assertTrue(members.containsKey(USER_ONE));
|
||||||
// assertTrue(this.siteService.isMember("testMembership", this.groupTwo));
|
assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
||||||
// // - can we get the roles for the various members directly
|
assertTrue(members.containsKey(USER_TWO));
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_ONE));
|
assertEquals(SiteModel.SITE_CONSUMER, members.get(USER_TWO));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", USER_TWO));
|
assertTrue(members.containsKey(USER_THREE));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", USER_THREE));
|
assertEquals(SiteModel.SITE_CONSUMER, members.get(USER_THREE));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", this.groupTwo));
|
|
||||||
//
|
// - is the user a member?
|
||||||
// // Add a group member as an explicit member
|
assertTrue(this.siteService.isMember("testMembership", USER_ONE));
|
||||||
// this.siteService.setMembership("testMembership", USER_THREE, SiteModel.SITE_COLLABORATOR);
|
assertTrue(this.siteService.isMember("testMembership", USER_TWO));
|
||||||
// // - check the explicit members list
|
assertTrue(this.siteService.isMember("testMembership", USER_THREE));
|
||||||
// members = this.siteService.listMembers("testMembership", null, null, 0);
|
|
||||||
// assertNotNull(members);
|
// - is the group a member?
|
||||||
// assertEquals(3, members.size());
|
assertTrue(this.siteService.isMember("testMembership", this.groupTwo));
|
||||||
// assertTrue(members.containsKey(USER_ONE));
|
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
// - can we get the roles for the various members directly
|
||||||
// assertTrue(members.containsKey(USER_THREE));
|
assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_ONE));
|
||||||
// assertEquals(SiteModel.SITE_COLLABORATOR, members.get(USER_THREE));
|
assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", USER_TWO));
|
||||||
// assertTrue(members.containsKey(this.groupTwo));
|
assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", USER_THREE));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, members.get(this.groupTwo));
|
assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", this.groupTwo));
|
||||||
// // - check the expanded members list
|
|
||||||
// members = this.siteService.listMembers("testMembership", null, null, 0, true);
|
/**
|
||||||
// assertNotNull(members);
|
* Add a group member (USER_THREE) as an explicit member
|
||||||
// assertEquals(3, members.size());
|
*/
|
||||||
// assertTrue(members.containsKey(USER_ONE));
|
this.siteService.setMembership("testMembership", USER_THREE, SiteModel.SITE_COLLABORATOR);
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
// - check the explicit members list
|
||||||
// assertTrue(members.containsKey(USER_TWO));
|
members = this.siteService.listMembers("testMembership", null, null, 0);
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, members.get(USER_TWO));
|
assertNotNull(members);
|
||||||
// assertTrue(members.containsKey(USER_THREE));
|
assertEquals(3, members.size());
|
||||||
// assertEquals(SiteModel.SITE_COLLABORATOR, members.get(USER_THREE));
|
assertTrue(members.containsKey(USER_ONE));
|
||||||
// // - check is member
|
assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
||||||
// assertTrue(this.siteService.isMember("testMembership", USER_ONE));
|
assertTrue(members.containsKey(USER_THREE));
|
||||||
// assertTrue(this.siteService.isMember("testMembership", USER_TWO));
|
assertEquals(SiteModel.SITE_COLLABORATOR, members.get(USER_THREE));
|
||||||
// assertTrue(this.siteService.isMember("testMembership", USER_THREE));
|
assertTrue(members.containsKey(this.groupTwo));
|
||||||
// // - is the group a member?
|
assertEquals(SiteModel.SITE_CONSUMER, members.get(this.groupTwo));
|
||||||
// assertTrue(this.siteService.isMember("testMembership", this.groupTwo));
|
// - check the expanded members list
|
||||||
// // - check get role directly
|
members = this.siteService.listMembers("testMembership", null, null, 0, true);
|
||||||
// assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_ONE));
|
assertNotNull(members);
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", USER_TWO));
|
assertEquals(3, members.size());
|
||||||
// assertEquals(SiteModel.SITE_COLLABORATOR, this.siteService.getMembersRole("testMembership", USER_THREE));
|
assertTrue(members.containsKey(USER_ONE));
|
||||||
// assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", this.groupTwo));
|
assertEquals(SiteModel.SITE_MANAGER, members.get(USER_ONE));
|
||||||
//
|
assertTrue(members.containsKey(USER_TWO));
|
||||||
// // Check permissions of added group
|
assertEquals(SiteModel.SITE_CONSUMER, members.get(USER_TWO));
|
||||||
//
|
assertTrue(members.containsKey(USER_THREE));
|
||||||
// // Update the permissions of the group
|
assertEquals(SiteModel.SITE_COLLABORATOR, members.get(USER_THREE));
|
||||||
//
|
|
||||||
// // Add other group with higher role
|
// - check is member
|
||||||
// // - is group in list?
|
assertTrue(this.siteService.isMember("testMembership", USER_ONE));
|
||||||
// // - is new user a member?
|
assertTrue(this.siteService.isMember("testMembership", USER_TWO));
|
||||||
// // - does redefined user have highest role?
|
assertTrue(this.siteService.isMember("testMembership", USER_THREE));
|
||||||
//
|
assertTrue(!this.siteService.isMember("testMembership", USER_FOUR));
|
||||||
// // Add group user as a specific user with higher role
|
|
||||||
// // - check that the user's role is higher that the group?
|
// - is the group a member?
|
||||||
//
|
assertTrue(this.siteService.isMember("testMembership", this.groupTwo));
|
||||||
// // Add a group with a sub-group
|
// - check get role directly
|
||||||
//
|
assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_ONE));
|
||||||
// // Remove groups
|
assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", USER_TWO));
|
||||||
// }
|
assertEquals(SiteModel.SITE_COLLABORATOR, this.siteService.getMembersRole("testMembership", USER_THREE));
|
||||||
|
assertEquals(SiteModel.SITE_CONSUMER, this.siteService.getMembersRole("testMembership", this.groupTwo));
|
||||||
|
|
||||||
|
// Check permissions of added group
|
||||||
|
|
||||||
|
// Update the permissions of the group
|
||||||
|
this.siteService.setMembership("testMembership", USER_THREE, SiteModel.SITE_CONTRIBUTOR);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add other group (GROUP_3) with higher (MANAGER) role
|
||||||
|
*
|
||||||
|
* - is group in list?
|
||||||
|
* - is new user a member?
|
||||||
|
* - does redefined user have highest role?
|
||||||
|
* USER_TWO should be Manager from group 3 having higher priority than group 2
|
||||||
|
* USER_THREE should still be Contributor from explicit membership.
|
||||||
|
* USER_FOUR should be Manager - from group 4 sub-group
|
||||||
|
*/
|
||||||
|
this.siteService.setMembership("testMembership", this.groupThree, SiteModel.SITE_MANAGER);
|
||||||
|
|
||||||
|
assertTrue(this.siteService.isMember("testMembership", USER_ONE));
|
||||||
|
assertTrue(this.siteService.isMember("testMembership", USER_TWO));
|
||||||
|
assertTrue(this.siteService.isMember("testMembership", USER_THREE));
|
||||||
|
assertTrue(this.siteService.isMember("testMembership", USER_FOUR));
|
||||||
|
|
||||||
|
assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_ONE));
|
||||||
|
assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_TWO));
|
||||||
|
assertEquals(SiteModel.SITE_CONTRIBUTOR, this.siteService.getMembersRole("testMembership", USER_THREE));
|
||||||
|
assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", this.groupThree));
|
||||||
|
|
||||||
|
// From sub group four
|
||||||
|
assertEquals(SiteModel.SITE_MANAGER, this.siteService.getMembersRole("testMembership", USER_FOUR));
|
||||||
|
|
||||||
|
|
||||||
|
// Remove groups
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests the visibility of a site
|
* Tests the visibility of a site
|
||||||
|
Loading…
x
Reference in New Issue
Block a user