Merge pull request #2109 from stianst/KEYCLOAK-2218

KEYCLOAK-2218 Allow updating user without including username
This commit is contained in:
Stian Thorgersen committed 2016-01-26 13:56:01 +01:00
commit 39b3c648a2
2 files changed
+30 -4

No files matched your search

@@ -220,12 +220,12 @@ public class UsersResource {
} }
public static void updateUserFromRep(UserModel user, UserRepresentation rep, Set<String> attrsToRemove, RealmModel realm, KeycloakSession session) { public static void updateUserFromRep(UserModel user, UserRepresentation rep, Set<String> attrsToRemove, RealmModel realm, KeycloakSession session) {
if (realm.isEditUsernameAllowed()) { if (rep.getUsername() != null && realm.isEditUsernameAllowed()) {
user.setUsername(rep.getUsername()); user.setUsername(rep.getUsername());
} }
user.setEmail(rep.getEmail()); if (rep.getEmail() != null) user.setEmail(rep.getEmail());
user.setFirstName(rep.getFirstName()); if (rep.getFirstName() != null) user.setFirstName(rep.getFirstName());
user.setLastName(rep.getLastName()); if (rep.getLastName() != null) user.setLastName(rep.getLastName());
if (rep.isEnabled() != null) user.setEnabled(rep.isEnabled()); if (rep.isEnabled() != null) user.setEnabled(rep.isEnabled());
if (rep.isTotp() != null) user.setOtpEnabled(rep.isTotp()); if (rep.isTotp() != null) user.setOtpEnabled(rep.isTotp());
@@ -528,6 +528,32 @@ public class UserTest extends AbstractClientTest {
assertEquals("user11", userRep.getUsername()); assertEquals("user11", userRep.getUsername());
} }
@Test
public void updateUserWithoutUsername() {
switchEditUsernameAllowedOn();
String id = createUser();
UserResource user = realm.users().get(id);
UserRepresentation rep = new UserRepresentation();
rep.setFirstName("Firstname");
user.update(rep);
rep = new UserRepresentation();
rep.setLastName("Lastname");
user.update(rep);
rep = realm.users().get(id).toRepresentation();
assertEquals("user1", rep.getUsername());
assertEquals("user1@localhost", rep.getEmail());
assertEquals("Firstname", rep.getFirstName());
assertEquals("Lastname", rep.getLastName());
}
@Test @Test
public void updateUserWithNewUsernameNotPossible() { public void updateUserWithNewUsernameNotPossible() {
String id = createUser(); String id = createUser();