Skip to content

Commit

Permalink
Prevent username change at backend
Browse files Browse the repository at this point in the history
Signed-off-by: Claudio Mezzasalma <claudio.mezzasalma@eurotech.com>
  • Loading branch information
Claudio Mezzasalma committed Jul 9, 2021
1 parent dd0ec6e commit 49d0ea2
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 10 deletions.
Expand Up @@ -172,6 +172,10 @@ public User update(User user) throws KapuaException {
if (!Objects.equals(currentUser.getExternalId(), user.getExternalId())) {
throw new KapuaIllegalArgumentException("externalId", user.getExternalId());
}
// Prevent username change
if (!Objects.equals(currentUser.getName(), user.getName())) {
throw new KapuaIllegalArgumentException("name", user.getName());
}

//
// Do update
Expand Down
Expand Up @@ -249,15 +249,19 @@ public void changeUserName(String userName) throws Exception {
@When("^I change user to$")
public void changeUserTo(List<CucUser> userList) throws Exception {
User user = (User) stepData.get("User");
for (CucUser userItem : userList) {
user.setName(userItem.getName());
user.setDisplayName(userItem.getDisplayName());
user.setEmail(userItem.getEmail());
user.setPhoneNumber(userItem.getPhoneNumber());
user.setStatus(userItem.getStatus());
user = userService.update(user);
try {
for (CucUser userItem : userList) {
user.setName(userItem.getName());
user.setDisplayName(userItem.getDisplayName());
user.setEmail(userItem.getEmail());
user.setPhoneNumber(userItem.getPhoneNumber());
user.setStatus(userItem.getStatus());
user = userService.update(user);
}
stepData.put("User", user);
} catch (KapuaException kapuaException) {
verifyException(kapuaException);
}
stepData.put("User", user);
}

@When("^I delete user$")
Expand Down
27 changes: 25 additions & 2 deletions service/user/test/src/test/resources/features/UserService.feature
Expand Up @@ -105,11 +105,34 @@ Scenario: Update user
And I search for user with name "kapua-u1"
And I change user to
| name | displayName | email | phoneNumber | status |
| kapua-u1-mod | Kapua User 1 mod | kapua_u1_mod@kapua.com | +386 31 323 444 | DISABLED |
And I search for user with name "kapua-u1-mod"
| kapua-u1 | Kapua User 1 mod | kapua_u1_mod@kapua.com | +386 31 323 444 | DISABLED |
And I search for user with name "kapua-u1"
Then I find user
| name | displayName | email | phoneNumber | status |
| kapua-u1 | Kapua User 1 mod | kapua_u1_mod@kapua.com | +386 31 323 444 | DISABLED |

Scenario: Try to change User name
First create user with all User entity fields set. Then persist this user in database.
After that find that same user and modify all the fields by appending modified.
Persist changes to database. At the end check that changes ware persisted

When I configure the user service for the account with the id 42
| type | name | value |
| boolean | infiniteChildEntities | true |
| integer | maxNumberChildEntities | 5 |
| boolean | lockoutPolicy.enabled | false |
| integer | lockoutPolicy.maxFailures | 3 |
| integer | lockoutPolicy.resetAfter | 300 |
| integer | lockoutPolicy.lockDuration | 3 |
Given I have the following user
| name | displayName | email | phoneNumber | status |
| kapua-u1 | Kapua User 1 | kapua_u1@kapua.com | +386 31 323 555 | ENABLED |
And I expect the exception "KapuaIllegalArgumentException"
When I search for user with name "kapua-u1"
And I change user to
| name | displayName | email | phoneNumber | status |
| kapua-u1-mod | Kapua User 1 mod | kapua_u1_mod@kapua.com | +386 31 323 444 | DISABLED |
Then An exception was thrown

Scenario: Delete user
Create user with name kapua-user. Then delete this user and check it is
Expand Down

0 comments on commit 49d0ea2

Please sign in to comment.