diff --git a/src/main/java/com/faforever/api/user/UserService.java b/src/main/java/com/faforever/api/user/UserService.java index 1de35ad86..bc93c90a6 100644 --- a/src/main/java/com/faforever/api/user/UserService.java +++ b/src/main/java/com/faforever/api/user/UserService.java @@ -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(); @@ -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); diff --git a/src/test/java/com/faforever/api/user/UserServiceTest.java b/src/test/java/com/faforever/api/user/UserServiceTest.java index 77b4304b6..dc2c483f7 100644 --- a/src/test/java/com/faforever/api/user/UserServiceTest.java +++ b/src/test/java/com/faforever/api/user/UserServiceTest.java @@ -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 {