keycloak-aplcache

Details

diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html
index 7975742..f0117d5 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html
@@ -62,10 +62,6 @@
                             <input ng-model="realm.verifyEmail" name="verifyEmail" id="verifyEmail" onoffswitch />
                         </div>
                         <div class="form-group clearfix block">
-                            <label for="accountManagement" class="control-label two-lines">User account management</label>
-                            <input ng-model="realm.accountManagement" name="accountManagement" id="accountManagement" onoffswitch />
-                        </div>
-                        <div class="form-group clearfix block">
                             <label for="requireSsl" class="control-label">Require SSL</label>
                             <input ng-model="realm.requireSsl" name="requireSsl" id="requireSsl" onoffswitch />
                         </div>
diff --git a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
index 376de43..5cb3799 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
@@ -17,7 +17,6 @@ public class RealmRepresentation {
     protected Integer accessCodeLifespan;
     protected Integer accessCodeLifespanUserAction;
     protected Boolean enabled;
-    protected Boolean accountManagement;
     protected Boolean sslNotRequired;
     protected Boolean registrationAllowed;
     protected Boolean verifyEmail;
@@ -107,14 +106,6 @@ public class RealmRepresentation {
         this.enabled = enabled;
     }
 
-    public Boolean getAccountManagement() {
-        return accountManagement;
-    }
-
-    public void setAccountManagement(Boolean accountManagement) {
-        this.accountManagement = accountManagement;
-    }
-
     public Boolean isSslNotRequired() {
         return sslNotRequired;
     }
diff --git a/examples/as7-eap-demo/testrealm.json b/examples/as7-eap-demo/testrealm.json
index da8b804..7f39c9a 100755
--- a/examples/as7-eap-demo/testrealm.json
+++ b/examples/as7-eap-demo/testrealm.json
@@ -4,7 +4,6 @@
     "tokenLifespan": 3000,
     "accessCodeLifespan": 10,
     "accessCodeLifespanUserAction": 6000,
-    "accountManagement": true,
     "sslNotRequired": true,
     "registrationAllowed": false,
     "social": false,
diff --git a/examples/wildfly-demo/testrealm.json b/examples/wildfly-demo/testrealm.json
index da8b804..7f39c9a 100755
--- a/examples/wildfly-demo/testrealm.json
+++ b/examples/wildfly-demo/testrealm.json
@@ -4,7 +4,6 @@
     "tokenLifespan": 3000,
     "accessCodeLifespan": 10,
     "accessCodeLifespanUserAction": 6000,
-    "accountManagement": true,
     "sslNotRequired": true,
     "registrationAllowed": false,
     "social": false,
diff --git a/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java b/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java
index 554a910..04986f3 100755
--- a/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java
+++ b/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java
@@ -76,7 +76,6 @@ public class ApplianceBootstrap {
 
         adminConsole.grantRole(adminUser, adminRole);
 
-        manager.enableAccountManagement(realm);
         ApplicationModel accountApp = realm.getApplicationNameMap().get(Constants.ACCOUNT_APPLICATION);
         for (String r : accountApp.getDefaultRoles()) {
             accountApp.grantRole(adminUser, accountApp.getRole(r));
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 7f1ead8..54908a0 100755
--- a/services/src/main/java/org/keycloak/services/managers/RealmManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
@@ -78,6 +78,9 @@ public class RealmManager {
         realm.setName(name);
         realm.addRole(Constants.APPLICATION_ROLE);
         realm.addRole(Constants.IDENTITY_REQUESTER_ROLE);
+
+        setupAccountManagement(realm);
+
         return realm;
     }
 
@@ -125,12 +128,6 @@ public class RealmManager {
             realm.updateDefaultRoles(rep.getDefaultRoles().toArray(new String[rep.getDefaultRoles().size()]));
         }
 
-        if (rep.getAccountManagement() != null && rep.getAccountManagement()) {
-            enableAccountManagement(realm);
-        } else {
-            disableAccountManagement(realm);
-        }
-
         if (rep.getSmtpServer() != null) {
             realm.setSmtpConfig(new HashMap(rep.getSmtpServer()));
         }
@@ -144,10 +141,12 @@ public class RealmManager {
         }
     }
 
-    public void enableAccountManagement(RealmModel realm) {
+    private void setupAccountManagement(RealmModel realm) {
         ApplicationModel application = realm.getApplicationNameMap().get(Constants.ACCOUNT_APPLICATION);
         if (application == null) {
             application = realm.addApplication(Constants.ACCOUNT_APPLICATION);
+            application.setEnabled(true);
+
             application.addDefaultRole(Constants.ACCOUNT_PROFILE_ROLE);
             application.addDefaultRole(Constants.ACCOUNT_MANAGE_ROLE);
 
@@ -160,14 +159,6 @@ public class RealmManager {
             RoleModel applicationRole = realm.getRole(Constants.APPLICATION_ROLE);
             realm.grantRole(application.getApplicationUser(), applicationRole);
         }
-        application.setEnabled(true);
-    }
-
-    public void disableAccountManagement(RealmModel realm) {
-        ApplicationModel application = realm.getApplicationNameMap().get(Constants.ACCOUNT_APPLICATION);
-        if (application != null) {
-            application.setEnabled(false); // TODO Should we delete the application instead?
-        }
     }
 
     public RealmModel importRealm(RealmRepresentation rep, UserModel realmCreator) {
@@ -180,7 +171,6 @@ public class RealmManager {
         return realm;
     }
 
-
     public void importRealm(RealmRepresentation rep, RealmModel newRealm) {
         newRealm.setName(rep.getRealm());
         if (rep.isEnabled() != null) newRealm.setEnabled(rep.isEnabled());
@@ -270,10 +260,6 @@ public class RealmManager {
 
         }
 
-        if (rep.getAccountManagement() != null && rep.getAccountManagement()) {
-            enableAccountManagement(newRealm);
-        }
-
         // Now that all possible users and applications are created (users, apps, and oauth clients), do role mappings and scope mappings
 
         Map<String, ApplicationModel> appMap = newRealm.getApplicationNameMap();
@@ -492,7 +478,6 @@ public class RealmManager {
         }
 
         ApplicationModel accountManagementApplication = realm.getApplicationNameMap().get(Constants.ACCOUNT_APPLICATION);
-        rep.setAccountManagement(accountManagementApplication != null && accountManagementApplication.isEnabled());
 
         List<String> defaultRoles = realm.getDefaultRoles();
         if (!defaultRoles.isEmpty()) {
diff --git a/services/src/test/java/org/keycloak/test/AdapterTest.java b/services/src/test/java/org/keycloak/test/AdapterTest.java
index cd522d8..08a0057 100755
--- a/services/src/test/java/org/keycloak/test/AdapterTest.java
+++ b/services/src/test/java/org/keycloak/test/AdapterTest.java
@@ -438,8 +438,8 @@ public class AdapterTest extends AbstractKeycloakTest {
         RealmModel otherRealm = adapter.createRealm("other");
         otherRealm.addUser("bburke");
 
-        Assert.assertEquals(1, otherRealm.getUsers().size());
-        Assert.assertEquals(1, otherRealm.searchForUser("u").size());
+        Assert.assertEquals(2, otherRealm.getUsers().size());
+        Assert.assertEquals(1, otherRealm.searchForUser("bu").size());
     }
 
 
diff --git a/services/src/test/java/org/keycloak/test/ApplicationModelTest.java b/services/src/test/java/org/keycloak/test/ApplicationModelTest.java
index e322481..1942b41 100755
--- a/services/src/test/java/org/keycloak/test/ApplicationModelTest.java
+++ b/services/src/test/java/org/keycloak/test/ApplicationModelTest.java
@@ -68,7 +68,7 @@ public class ApplicationModelTest extends AbstractKeycloakServerTest {
     public void persist() {
         RealmModel persisted = manager.getRealm(realm.getId());
 
-        assertEquals(application, persisted.getApplications().get(0));
+        assertEquals(application, persisted.getApplicationNameMap().get("app-name"));
     }
 
     @Test
diff --git a/services/src/test/java/org/keycloak/test/ImportTest.java b/services/src/test/java/org/keycloak/test/ImportTest.java
index 5c45509..383c683 100755
--- a/services/src/test/java/org/keycloak/test/ImportTest.java
+++ b/services/src/test/java/org/keycloak/test/ImportTest.java
@@ -54,7 +54,7 @@ public class ImportTest extends AbstractKeycloakTest {
         Assert.assertEquals(0, realm.getSocialLinks(user).size());
 
         List<ApplicationModel> resources = realm.getApplications();
-        Assert.assertEquals(2, resources.size());
+        Assert.assertEquals(3, resources.size());
 
         // Test scope relationship
         ApplicationModel application = realm.getApplicationNameMap().get("Application");
diff --git a/testsuite/integration/src/test/resources/testrealm.json b/testsuite/integration/src/test/resources/testrealm.json
index c25ece4..755d9ea 100755
--- a/testsuite/integration/src/test/resources/testrealm.json
+++ b/testsuite/integration/src/test/resources/testrealm.json
@@ -7,7 +7,6 @@
     "accessCodeLifespanUserAction": 600,
     "sslNotRequired": true,
     "registrationAllowed": true,
-    "accountManagement": true,
     "resetPasswordAllowed": true,
     "privateKey": "MIICXAIBAAKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQABAoGAfmO8gVhyBxdqlxmIuglbz8bcjQbhXJLR2EoS8ngTXmN1bo2L90M0mUKSdc7qF10LgETBzqL8jYlQIbt+e6TH8fcEpKCjUlyq0Mf/vVbfZSNaVycY13nTzo27iPyWQHK5NLuJzn1xvxxrUeXI6A2WFpGEBLbHjwpx5WQG9A+2scECQQDvdn9NE75HPTVPxBqsEd2z10TKkl9CZxu10Qby3iQQmWLEJ9LNmy3acvKrE3gMiYNWb6xHPKiIqOR1as7L24aTAkEAtyvQOlCvr5kAjVqrEKXalj0Tzewjweuxc0pskvArTI2Oo070h65GpoIKLc9jf+UA69cRtquwP93aZKtW06U8dQJAF2Y44ks/mK5+eyDqik3koCI08qaC8HYq2wVl7G2QkJ6sbAaILtcvD92ToOvyGyeE0flvmDZxMYlvaZnaQ0lcSQJBAKZU6umJi3/xeEbkJqMfeLclD27XGEFoPeNrmdx0q10Azp4NfJAY+Z8KRyQCR2BEG+oNitBOZ+YXF9KCpH3cdmECQHEigJhYg+ykOvr1aiZUMFT72HU0jnmQe2FVekuG+LJUt2Tm7GtMjTFoGpf0JwrVuZN39fOYAlo+nTixgeW7X8Y=",
     "publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",