Skip to content

Commit

Permalink
Allow change of login casing
Browse files Browse the repository at this point in the history
  • Loading branch information
vonagam committed Oct 3, 2022
1 parent 528221c commit 5a6a465
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/main/java/com/faforever/api/user/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,10 @@ public void changeLoginForced(String newLogin, User user, String ipAddress) {
}

private void internalChangeLogin(String newLogin, User user, String ipAddress, boolean force) {
validateUsername(newLogin);
String oldLogin = user.getLogin();
if (!newLogin.equalsIgnoreCase(oldLogin)) {
validateUsername(newLogin);
}

if (!force) {
int minDaysBetweenChange = properties.getUser().getMinimumDaysBetweenUsernameChange();
Expand All @@ -264,9 +267,9 @@ private void internalChangeLogin(String newLogin, User user, String ipAddress, b
});

}
log.info("Changing username for user ''{}'' to ''{}'', forced:''{}''", user.getLogin(), newLogin, force);
log.info("Changing username for user ''{}'' to ''{}'', forced:''{}''", oldLogin, newLogin, force);
NameRecord nameRecord = new NameRecord()
.setName(user.getLogin())
.setName(oldLogin)
.setPlayer(playerRepository.getReferenceById(user.getId()));
nameRecordRepository.save(nameRecord);

Expand Down
8 changes: 8 additions & 0 deletions src/test/java/com/faforever/api/user/UserServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,14 @@ public void changeLoginUsernameReservedBySelf() {
verify(eventPublisher).publishEvent(any(UserUpdatedEvent.class));
}

@Test
public void changeLoginCasing() {
when(userRepository.save(any(User.class))).then(invocation -> ((User) invocation.getArgument(0)).setId(TEST_USERID));

instance.changeLogin(TEST_USERNAME.toUpperCase(), validUser, IP_ADDRESS);
verify(eventPublisher).publishEvent(any(UserUpdatedEvent.class));
}

@Test
@SuppressWarnings("unchecked")
public void resetPasswordByLogin() throws Exception {
Expand Down

0 comments on commit 5a6a465

Please sign in to comment.