mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-07 18:25:23 +00:00
Merged V3.2 to HEAD
15473: ETHREEOH-2574: Fixed problem when LDAP sync attempts to delete a user who already exists but with username in a different case (e.g. guest -> Guest) - ACLs were getting left behind due to case issues - Now 'normalize' the name using getUserIdentifier() git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15474 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
parent
f0226fe5d1
commit
24f5a529c6
@ -641,6 +641,13 @@ public class PersonServiceImpl extends TransactionListenerAdapter implements Per
|
||||
|
||||
public void deletePerson(String userName)
|
||||
{
|
||||
// Normalize the username to avoid case sensitivity issues
|
||||
userName = getUserIdentifier(userName);
|
||||
if (userName == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// remove user from any containing authorities
|
||||
Set<String> containerAuthorities = authorityService.getContainingAuthorities(null, userName, true);
|
||||
for (String containerAuthority : containerAuthorities)
|
||||
|
@ -283,14 +283,15 @@ public class ChainingUserRegistrySynchronizerTest extends TestCase
|
||||
/**
|
||||
* Tests a forced update of the test users and groups. Also tests that groups and users that previously existed in
|
||||
* Z2 get moved when they appear in Z1. Also tests that 'dangling references' to removed users (U4, U5) do not cause
|
||||
* any problems. The layout is as follows
|
||||
* any problems. Also tests that case-sensitivity is not a problem when an occluded user is recreated with different
|
||||
* case. The layout is as follows
|
||||
*
|
||||
* <pre>
|
||||
* Z1
|
||||
* G1 - U6
|
||||
* G2 -
|
||||
* G3 - U2, G5 - U6
|
||||
* G6 - U3
|
||||
* G6 - u3
|
||||
*
|
||||
* Z2
|
||||
* G2 - U1, U3, U6
|
||||
@ -305,11 +306,11 @@ public class ChainingUserRegistrySynchronizerTest extends TestCase
|
||||
setUpTestUsersAndGroups();
|
||||
this.applicationContextManager.setUserRegistries(new MockUserRegistry("Z1", new NodeDescription[]
|
||||
{
|
||||
newPerson("U2"), newPerson("U3"), newPerson("U6")
|
||||
newPerson("U2"), newPerson("u3"), newPerson("U6")
|
||||
}, new NodeDescription[]
|
||||
{
|
||||
newGroup("G1", "U6"), newGroup("G2"), newGroup("G3", "U2", "G5"), newGroup("G5", "U6"),
|
||||
newGroup("G6", "U3")
|
||||
newGroup("G6", "u3")
|
||||
}), new MockUserRegistry("Z2", new NodeDescription[]
|
||||
{
|
||||
newPerson("U1", "somenewemail@alfresco.com"), newPerson("U3"), newPerson("U6")
|
||||
@ -332,14 +333,14 @@ public class ChainingUserRegistrySynchronizerTest extends TestCase
|
||||
public Object execute() throws Throwable
|
||||
{
|
||||
assertExists("Z1", "U2");
|
||||
assertExists("Z1", "U3");
|
||||
assertExists("Z1", "u3");
|
||||
assertExists("Z1", "U6");
|
||||
assertExists("Z1", "G1", "U6");
|
||||
assertExists("Z1", "G2");
|
||||
assertExists("Z1", "G3", "U2", "G5");
|
||||
assertNotExists("G4");
|
||||
assertExists("Z1", "G5", "U6");
|
||||
assertExists("Z1", "G6", "U3");
|
||||
assertExists("Z1", "G6", "u3");
|
||||
assertExists("Z2", "U1");
|
||||
assertEmailEquals("U1", "somenewemail@alfresco.com");
|
||||
assertNotExists("U4");
|
||||
|
Loading…
x
Reference in New Issue
Block a user