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)
|
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
|
// remove user from any containing authorities
|
||||||
Set<String> containerAuthorities = authorityService.getContainingAuthorities(null, userName, true);
|
Set<String> containerAuthorities = authorityService.getContainingAuthorities(null, userName, true);
|
||||||
for (String containerAuthority : containerAuthorities)
|
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
|
* 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
|
* 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>
|
* <pre>
|
||||||
* Z1
|
* Z1
|
||||||
* G1 - U6
|
* G1 - U6
|
||||||
* G2 -
|
* G2 -
|
||||||
* G3 - U2, G5 - U6
|
* G3 - U2, G5 - U6
|
||||||
* G6 - U3
|
* G6 - u3
|
||||||
*
|
*
|
||||||
* Z2
|
* Z2
|
||||||
* G2 - U1, U3, U6
|
* G2 - U1, U3, U6
|
||||||
@ -305,11 +306,11 @@ public class ChainingUserRegistrySynchronizerTest extends TestCase
|
|||||||
setUpTestUsersAndGroups();
|
setUpTestUsersAndGroups();
|
||||||
this.applicationContextManager.setUserRegistries(new MockUserRegistry("Z1", new NodeDescription[]
|
this.applicationContextManager.setUserRegistries(new MockUserRegistry("Z1", new NodeDescription[]
|
||||||
{
|
{
|
||||||
newPerson("U2"), newPerson("U3"), newPerson("U6")
|
newPerson("U2"), newPerson("u3"), newPerson("U6")
|
||||||
}, new NodeDescription[]
|
}, new NodeDescription[]
|
||||||
{
|
{
|
||||||
newGroup("G1", "U6"), newGroup("G2"), newGroup("G3", "U2", "G5"), newGroup("G5", "U6"),
|
newGroup("G1", "U6"), newGroup("G2"), newGroup("G3", "U2", "G5"), newGroup("G5", "U6"),
|
||||||
newGroup("G6", "U3")
|
newGroup("G6", "u3")
|
||||||
}), new MockUserRegistry("Z2", new NodeDescription[]
|
}), new MockUserRegistry("Z2", new NodeDescription[]
|
||||||
{
|
{
|
||||||
newPerson("U1", "somenewemail@alfresco.com"), newPerson("U3"), newPerson("U6")
|
newPerson("U1", "somenewemail@alfresco.com"), newPerson("U3"), newPerson("U6")
|
||||||
@ -332,14 +333,14 @@ public class ChainingUserRegistrySynchronizerTest extends TestCase
|
|||||||
public Object execute() throws Throwable
|
public Object execute() throws Throwable
|
||||||
{
|
{
|
||||||
assertExists("Z1", "U2");
|
assertExists("Z1", "U2");
|
||||||
assertExists("Z1", "U3");
|
assertExists("Z1", "u3");
|
||||||
assertExists("Z1", "U6");
|
assertExists("Z1", "U6");
|
||||||
assertExists("Z1", "G1", "U6");
|
assertExists("Z1", "G1", "U6");
|
||||||
assertExists("Z1", "G2");
|
assertExists("Z1", "G2");
|
||||||
assertExists("Z1", "G3", "U2", "G5");
|
assertExists("Z1", "G3", "U2", "G5");
|
||||||
assertNotExists("G4");
|
assertNotExists("G4");
|
||||||
assertExists("Z1", "G5", "U6");
|
assertExists("Z1", "G5", "U6");
|
||||||
assertExists("Z1", "G6", "U3");
|
assertExists("Z1", "G6", "u3");
|
||||||
assertExists("Z2", "U1");
|
assertExists("Z2", "U1");
|
||||||
assertEmailEquals("U1", "somenewemail@alfresco.com");
|
assertEmailEquals("U1", "somenewemail@alfresco.com");
|
||||||
assertNotExists("U4");
|
assertNotExists("U4");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user