Merged 5.2.0 (5.2.0) to HEAD (5.2)

133843 rmunteanu: REPO-1746: Merge fixes for 5.2 GA issues to 5.2.0 branch
      Merged 5.2.N (5.2.1) to 5.2.0 (5.2.0)
         133423 jvonka: REPPO-1579: V1 REST API - create person fix
         - expect 403 instead of 409, if a non-admin tries to create a person that already exists
         - REPO-892


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@134182 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2017-01-11 10:34:03 +00:00
parent 342fe6f26c
commit 75c6283fb0
2 changed files with 19 additions and 5 deletions

View File

@@ -428,7 +428,13 @@ public class PeopleImpl implements People
{
validateCreatePersonData(person);
// TODO: check, is this transaction safe?
if (! isAdminAuthority())
{
// note: do an explict check for admin here (since personExists does not throw 403 unlike createPerson,
// hence next block would cause 409 to be returned)
throw new PermissionDeniedException();
}
// Unfortunately PersonService.createPerson(...) only throws an AlfrescoRuntimeException
// rather than a more specific exception and does not use a message ID either, so there's
// no sensible way to know that it was thrown due to the user already existing - hence this check here.

View File

@@ -430,17 +430,25 @@ public class TestPeople extends EnterpriseTestApi
// -ve: person already exists
{
publicApiClient.setRequestContext(new RequestContext(account1.getId(), account1Admin, "admin"));
String username = "myUserName03@"+account1.getId();
String password = "secret";
Person person = new Person();
person.setUserName("myUserName03@"+account1.getId());
person.setUserName(username);
person.setFirstName("Alison");
person.setEmail("alison.smythe@example.com");
person.setEnabled(true);
person.setPassword("secret");
person.setPassword(password);
publicApiClient.setRequestContext(new RequestContext(account1.getId(), account1Admin, "admin"));
people.create(person);
// Attempt to create the person a second time.
// Attempt to create the person a second time - as admin expect 409
people.create(person, 409);
publicApiClient.setRequestContext(new RequestContext(account1.getId(), username, password));
// Attempt to create the person a second time - as non-admin expect 403
people.create(person, 403);
}
}