Details
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html
index 55898e6..fec6872 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html
@@ -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
diff --git a/core/src/main/java/org/keycloak/representations/idm/UserRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/UserRepresentation.java
index a15d053..c762ec0 100755
--- a/core/src/main/java/org/keycloak/representations/idm/UserRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/UserRepresentation.java
@@ -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;
}
diff --git a/services/src/main/java/org/keycloak/services/managers/RealmManager.java b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
index 7db2cf5..7c49e9d 100755
--- a/services/src/main/java/org/keycloak/services/managers/RealmManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
@@ -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());
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java b/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java
index 3f72e38..b81480d 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java
@@ -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());