KEYCLOAK-156 add new user properties to admin ui
This commit is contained in:
1 parent
42d7e430ce
commit
ab7cc63084
5 files changed
+45
-99
No files matched your search
@@ -65,6 +65,20 @@
|
||||
data-ng-model="user.lastName">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group clearfix block">
|
||||
<label for="userEnabled" class="control-label">User Enabled</label>
|
||||
<input ng-model="user.enabled" name="userEnabled" id="userEnabled" onoffswitch />
|
||||
</div>
|
||||
<div class="form-group clearfix block">
|
||||
<label for="userTotp" class="control-label">TOTP Enabled</label>
|
||||
<input ng-model="user.totp" name="userTotp" id="userTotp" onoffswitch />
|
||||
</div>
|
||||
<div class="form-group clearfix block">
|
||||
<label for="emailVerified" class="control-label">Email verified</label>
|
||||
<input ng-model="user.emailVerified" name="emailVerified" id="emailVerified" onoffswitch />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
<div class="form-actions" data-ng-show="create">
|
||||
<button type="submit" data-ng-click="save()" class="primary" data-ng-show="changed">Save
|
||||
|
||||
@@ -14,6 +14,8 @@ public class UserRepresentation {
|
||||
protected String self; // link
|
||||
protected String username;
|
||||
protected boolean enabled;
|
||||
protected boolean totp;
|
||||
protected boolean emailVerified;
|
||||
protected String firstName;
|
||||
protected String lastName;
|
||||
protected String email;
|
||||
@@ -69,6 +71,22 @@ public class UserRepresentation {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public boolean isTotp() {
|
||||
return totp;
|
||||
}
|
||||
|
||||
public void setTotp(boolean totp) {
|
||||
this.totp = totp;
|
||||
}
|
||||
|
||||
public boolean isEmailVerified() {
|
||||
return emailVerified;
|
||||
}
|
||||
|
||||
public void setEmailVerified(boolean emailVerified) {
|
||||
this.emailVerified = emailVerified;
|
||||
}
|
||||
|
||||
public Map<String, String> getAttributes() {
|
||||
return attributes;
|
||||
}
|
||||
|
||||
@@ -387,6 +387,9 @@ public class RealmManager {
|
||||
rep.setLastName(user.getLastName());
|
||||
rep.setFirstName(user.getFirstName());
|
||||
rep.setEmail(user.getEmail());
|
||||
rep.setEnabled(user.isEnabled());
|
||||
rep.setEmailVerified(user.isEmailVerified());
|
||||
rep.setTotp(user.isTotp());
|
||||
if (user.getAttributes() != null && !user.getAttributes().isEmpty()) {
|
||||
Map<String, String> attrs = new HashMap<String, String>();
|
||||
attrs.putAll(user.getAttributes());
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
package org.keycloak.services.managers;
|
||||
|
||||
import org.keycloak.models.RealmModel;
|
||||
import org.keycloak.models.UserCredentialModel;
|
||||
import org.keycloak.models.UserModel;
|
||||
import org.keycloak.representations.idm.CredentialRepresentation;
|
||||
import org.keycloak.representations.idm.UserRepresentation;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
||||
* @version $Revision: 1 $
|
||||
*/
|
||||
public class UserManager {
|
||||
|
||||
public static UserRepresentation toRepresentation(UserModel user) {
|
||||
UserRepresentation rep = new UserRepresentation();
|
||||
rep.setEmail(user.getEmail());
|
||||
rep.setLastName(user.getLastName());
|
||||
rep.setFirstName(user.getFirstName());
|
||||
rep.setEnabled(user.isEnabled());
|
||||
rep.setUsername(user.getLoginName());
|
||||
for (Map.Entry<String, String> entry : user.getAttributes().entrySet()) {
|
||||
rep.attribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
return rep;
|
||||
}
|
||||
|
||||
public UserModel createUser(RealmModel newRealm, UserRepresentation userRep) {
|
||||
UserModel user = newRealm.addUser(userRep.getUsername());
|
||||
user.setEnabled(userRep.isEnabled());
|
||||
user.setEmail(userRep.getEmail());
|
||||
user.setFirstName(userRep.getFirstName());
|
||||
user.setLastName(userRep.getLastName());
|
||||
if (userRep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> entry : userRep.getAttributes().entrySet()) {
|
||||
user.setAttribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
if (userRep.getCredentials() != null) {
|
||||
for (CredentialRepresentation cred : userRep.getCredentials()) {
|
||||
UserCredentialModel credential = new UserCredentialModel();
|
||||
credential.setType(cred.getType());
|
||||
credential.setValue(cred.getValue());
|
||||
newRealm.updateCredential(user, credential);
|
||||
}
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Doesn't allow you to change loginname.
|
||||
*
|
||||
* @param user
|
||||
* @param userRep
|
||||
*/
|
||||
public void updateUserAsAdmin(UserModel user, UserRepresentation userRep) {
|
||||
user.setEnabled(userRep.isEnabled());
|
||||
user.setEmail(userRep.getEmail());
|
||||
user.setFirstName(userRep.getFirstName());
|
||||
user.setLastName(userRep.getLastName());
|
||||
if (userRep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> entry : userRep.getAttributes().entrySet()) {
|
||||
user.setAttribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
if (userRep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> entry : userRep.getAttributes().entrySet()) {
|
||||
user.setAttribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Doesn't allow you to change loginname.
|
||||
* Doesn't allow you to change enable
|
||||
*
|
||||
* @param user
|
||||
* @param userRep
|
||||
*/
|
||||
public void updateUserAsUser(UserModel user, UserRepresentation userRep) {
|
||||
user.setEmail(userRep.getEmail());
|
||||
user.setFirstName(userRep.getFirstName());
|
||||
user.setLastName(userRep.getLastName());
|
||||
if (userRep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> entry : userRep.getAttributes().entrySet()) {
|
||||
user.setAttribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
if (userRep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> entry : userRep.getAttributes().entrySet()) {
|
||||
user.setAttribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -67,6 +67,11 @@ public class UsersResource {
|
||||
user.setEmail(rep.getEmail());
|
||||
user.setFirstName(rep.getFirstName());
|
||||
user.setLastName(rep.getLastName());
|
||||
|
||||
user.setEnabled(rep.isEnabled());
|
||||
user.setTotp(rep.isTotp());
|
||||
user.setEmailVerified(rep.isEmailVerified());
|
||||
|
||||
if (rep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> attr : rep.getAttributes().entrySet()) {
|
||||
user.setAttribute(attr.getKey(), attr.getValue());
|
||||
@@ -87,6 +92,11 @@ public class UsersResource {
|
||||
user.setEmail(rep.getEmail());
|
||||
user.setFirstName(rep.getFirstName());
|
||||
user.setLastName(rep.getLastName());
|
||||
|
||||
user.setEnabled(rep.isEnabled());
|
||||
user.setTotp(rep.isTotp());
|
||||
user.setEmailVerified(rep.isEmailVerified());
|
||||
|
||||
if (rep.getAttributes() != null) {
|
||||
for (Map.Entry<String, String> attr : rep.getAttributes().entrySet()) {
|
||||
user.setAttribute(attr.getKey(), attr.getValue());
|
||||
|
||||
Reference in new issue
Block a user