Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (4.3/Cloud)

73691: Merged V4.2-BUG-FIX (4.2.3) to HEAD-BUG-FIX (4.3/Cloud)
      73613: Merged V4.1-BUG-FIX (4.1.10) to V4.2-BUG-FIX (4.2.3)
         73399: Merged DEV to V4.1-BUG-FIX (4.1.10)
            70066: MNT-2229 Wrong user role is displayed in site members dashlet. 
            72036: MNT-2229 Wrong user role is displayed in site members dashlet.
                     - In SiteServiceImplTest was added testUserRoleInGroups() test.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@74806 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Will Abson
2014-06-25 16:07:45 +00:00
parent 88f2d1dc6f
commit c155d62f06
3 changed files with 49 additions and 7 deletions

View File

@@ -36,10 +36,18 @@ import java.util.Map;
public int compare(String first, String second) public int compare(String first, String second)
{ {
int firstRank = getRolePrecedence().get(first); int firstRank = 0;
int secondRank = getRolePrecedence().get(second); int secondRank = 0;
if (getRolePrecedence().containsKey(first))
{
firstRank = getRolePrecedence().get(first);
}
if (getRolePrecedence().containsKey(second))
{
secondRank = getRolePrecedence().get(second);
}
return secondRank - firstRank; return secondRank > firstRank ? 1 : secondRank < firstRank ? -1 : 0;
} }
public void init() public void init()

View File

@@ -2074,6 +2074,15 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic
{ {
members.add(memberInfo); members.add(memberInfo);
} }
else
{
int index = members.indexOf(memberInfo);
int priority = roleComparator.compare(members.get(index).getMemberRole(), memberInfo.getMemberRole());
if (priority == 1)
{
members.set(index, memberInfo);
}
}
// break on max size limit reached // break on max size limit reached
if (members.size() >= size) if (members.size() >= size)

View File

@@ -1638,6 +1638,31 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
fail("Expected exception not thrown."); fail("Expected exception not thrown.");
} }
/**
*
* See https://issues.alfresco.com/jira/browse/MNT-2229
*/
public void testUserRoleInGroups()
{
String sitName = "testMembership2";
// Create a site as user one
this.siteService.createSite(TEST_SITE_PRESET, sitName, TEST_TITLE, TEST_DESCRIPTION, SiteVisibility.PUBLIC);
/**
* Add a group (GROUP_ONE) with role COLLABORATOR
*/
this.siteService.setMembership(sitName, this.groupOne, SiteModel.SITE_COLLABORATOR);
/**
* Add a group (GROUP_TWO) with role CONSUMER
*/
this.siteService.setMembership(sitName, this.groupTwo, SiteModel.SITE_CONSUMER);
List<SiteMemberInfo> roles = this.siteService.listMembersInfo(sitName, USER_TWO, null, 0, true);
assertEquals(roles.get(0).getMemberRole(), SiteModel.SITE_COLLABORATOR);
}
/** /**
* Tests the visibility of a site * Tests the visibility of a site
* *