Merged 5.2.N (5.2.2) to HEAD (5.2)

134040 rmunteanu: REPO-1752, REPO-1753: Create person with an id that contains "/" does not return an error
      - Added username validation on create person.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@137333 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrei Rebegea
2017-06-14 16:56:02 +00:00
parent f7989073a7
commit 7b013ec1c5
2 changed files with 26 additions and 2 deletions

View File

@@ -511,6 +511,7 @@ public class PeopleImpl implements People
private void validateCreatePersonData(Person person) private void validateCreatePersonData(Person person)
{ {
validateUsername(person.getUserName());
validateNamespaces(person.getAspectNames(), person.getProperties()); validateNamespaces(person.getAspectNames(), person.getProperties());
checkRequiredField("id", person.getUserName()); checkRequiredField("id", person.getUserName());
checkRequiredField("firstName", person.getFirstName()); checkRequiredField("firstName", person.getFirstName());
@@ -518,6 +519,19 @@ public class PeopleImpl implements People
checkRequiredField("password", person.getPassword()); checkRequiredField("password", person.getPassword());
} }
private void validateUsername(String username)
{
if (username.length() > 100)
{
throw new InvalidArgumentException("Username is too long.");
}
if (username.indexOf('/') != -1)
{
throw new IllegalArgumentException("Username contains characters that are not permitted.");
}
}
private void validateNamespaces(List<String> aspectNames, Map<String, Object> properties) private void validateNamespaces(List<String> aspectNames, Map<String, Object> properties)
{ {
if (aspectNames != null) if (aspectNames != null)

View File

@@ -289,6 +289,16 @@ public class TestPeople extends EnterpriseTestApi
assertEquals("userStatus", p.getUserStatus()); assertEquals("userStatus", p.getUserStatus());
assertEquals(true, p.isEnabled()); assertEquals(true, p.isEnabled());
assertEquals(true, p.isEmailNotificationsEnabled()); assertEquals(true, p.isEmailNotificationsEnabled());
// -ve tests
// create person with username too long
person.setUserName("myUserName11111111111111111111111111111111111111111111111111111111111111111111111111111111@" + account1.getId());
people.create(person, 400);
// create person with special character '/'
person.setUserName("myUser/Name@" + account1.getId());
people.create(person, 400);
} }
@Test @Test