keycloak-aplcache

Details

diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/application-role-detail.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/application-role-detail.html
index 4c6b5b2..fc39912 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/application-role-detail.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/application-role-detail.html
@@ -52,10 +52,6 @@
                                        required> -->
                             </div>
                         </div>
-                        <div class="form-group clearfix block">
-                            <label for="composite" class="control-label">Composite</label>
-                            <input ng-model="role.composite" name="composite" id="composite" onoffswitch />
-                        </div>
                     </fieldset>
                     <div class="form-actions" data-ng-show="create">
                         <button type="submit" kc-save class="primary" data-ng-show="changed">Save
@@ -74,7 +70,7 @@
                             Delete
                         </button>
                     </div>
-                    <fieldset data-ng-show="!create && role.composite">
+                    <fieldset data-ng-show="!create">
                         <legend collapsed><span class="text">Composite Realm Roles</span> </legend>
                         <div class="form-group">
                             <div class="controls changing-selectors">
@@ -102,7 +98,7 @@
                         </div>
                     </fieldset>
 
-                    <fieldset ng-show="applications.length > 0 && !create && role.composite">
+                    <fieldset ng-show="applications.length > 0 && !create">
                         <legend collapsed><span class="text">Composite Application Roles</span> </legend>
                         <div class="form-group input-select">
                             <label for="applications">Application</label>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-detail.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-detail.html
index b835fcb..5b1d3af 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-detail.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-detail.html
@@ -47,10 +47,6 @@
                                 <textarea rows="5" cols="50" id="description" name="description" data-ng-model="role.description"></textarea>
                             </div>
                         </div>
-                        <div class="form-group clearfix block">
-                            <label for="composite" class="control-label">Composite</label>
-                            <input ng-model="role.composite" name="composite" id="composite" onoffswitch />
-                        </div>
                     </fieldset>
                     <div class="form-actions" data-ng-show="create">
                         <button type="submit" kc-save class="primary" data-ng-show="changed">Save
@@ -70,7 +66,7 @@
                         </button>
                     </div>
 
-                    <fieldset data-ng-show="!create && role.composite">
+                    <fieldset data-ng-show="!create">
                         <legend collapsed><span class="text">Composite Realm Roles</span> </legend>
                         <div class="form-group">
                             <div class="controls changing-selectors">
@@ -98,7 +94,7 @@
                         </div>
                     </fieldset>
 
-                    <fieldset ng-show="applications.length > 0 && !create && role.composite">
+                    <fieldset ng-show="applications.length > 0 && !create">
                         <legend collapsed><span class="text">Composite Application Roles</span> </legend>
                         <div class="form-group input-select">
                             <label for="applications">Application</label>
diff --git a/core/src/main/java/org/keycloak/representations/idm/RoleRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/RoleRepresentation.java
index e98eaa6..faf9a5d 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RoleRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RoleRepresentation.java
@@ -12,7 +12,6 @@ public class RoleRepresentation {
     protected String id;
     protected String name;
     protected String description;
-    protected boolean composite;
     protected Composites composites;
 
     public static class Composites {
@@ -69,14 +68,6 @@ public class RoleRepresentation {
         this.description = description;
     }
 
-    public boolean isComposite() {
-        return composite;
-    }
-
-    public void setComposite(boolean composite) {
-        this.composite = composite;
-    }
-
     public Composites getComposites() {
         return composites;
     }
diff --git a/model/api/src/main/java/org/keycloak/models/RoleModel.java b/model/api/src/main/java/org/keycloak/models/RoleModel.java
index 1cacaff..49dabeb 100755
--- a/model/api/src/main/java/org/keycloak/models/RoleModel.java
+++ b/model/api/src/main/java/org/keycloak/models/RoleModel.java
@@ -19,8 +19,6 @@ public interface RoleModel {
 
     boolean isComposite();
 
-    void setComposite(boolean flag);
-
     void addCompositeRole(RoleModel role);
 
     void removeCompositeRole(RoleModel role);
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java
index 0d67e34..1c21d12 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java
@@ -26,7 +26,6 @@ public abstract class RoleEntity {
 
     private String name;
     private String description;
-    private boolean composite;
     @ManyToMany(fetch = FetchType.LAZY, cascade = {})
     //@JoinTable(name = "COMPOSITE_ROLE")
     private Collection<RoleEntity> compositeRoles = new ArrayList<RoleEntity>();
@@ -56,14 +55,6 @@ public abstract class RoleEntity {
         this.description = description;
     }
 
-    public boolean isComposite() {
-        return composite;
-    }
-
-    public void setComposite(boolean composite) {
-        this.composite = composite;
-    }
-
     public Collection<RoleEntity> getCompositeRoles() {
         return compositeRoles;
     }
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java
index 69aa3ae..2c9a8c9 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RoleAdapter.java
@@ -62,12 +62,7 @@ public class RoleAdapter implements RoleModel {
 
     @Override
     public boolean isComposite() {
-        return role.isComposite();
-    }
-
-    @Override
-    public void setComposite(boolean flag) {
-        role.setComposite(flag);
+        return getComposites().size() > 0;
     }
 
     @Override
diff --git a/services/src/main/java/org/keycloak/services/managers/ModelToRepresentation.java b/services/src/main/java/org/keycloak/services/managers/ModelToRepresentation.java
index a706360..efcd1dc 100755
--- a/services/src/main/java/org/keycloak/services/managers/ModelToRepresentation.java
+++ b/services/src/main/java/org/keycloak/services/managers/ModelToRepresentation.java
@@ -51,7 +51,6 @@ public class ModelToRepresentation {
         rep.setId(role.getId());
         rep.setName(role.getName());
         rep.setDescription(role.getDescription());
-        rep.setComposite(role.isComposite());
         return rep;
     }
 
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 9afb3ea..4611599 100755
--- a/services/src/main/java/org/keycloak/services/managers/RealmManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
@@ -260,7 +260,6 @@ public class RealmManager {
                     for (RoleRepresentation roleRep : entry.getValue()) {
                         RoleModel role = app.addRole(roleRep.getName());
                         role.setDescription(roleRep.getDescription());
-                        role.setComposite(roleRep.isComposite());
                     }
                 }
             }
@@ -375,7 +374,7 @@ public class RealmManager {
     }
 
     public void addComposites(RoleModel role, RoleRepresentation roleRep, RealmModel realm) {
-        if (!roleRep.isComposite() || roleRep.getComposites() == null) return;
+        if (roleRep.getComposites() == null) return;
         if (roleRep.getComposites().getRealm() != null) {
             for (String roleStr : roleRep.getComposites().getRealm()) {
                 RoleModel realmRole = realm.getRole(roleStr);
@@ -404,7 +403,6 @@ public class RealmManager {
     public void createRole(RealmModel newRealm, RoleRepresentation roleRep) {
         RoleModel role = newRealm.addRole(roleRep.getName());
         if (roleRep.getDescription() != null) role.setDescription(roleRep.getDescription());
-        role.setComposite(roleRep.isComposite());
     }
 
     public void createRole(RealmModel newRealm, ApplicationModel app, RoleRepresentation roleRep) {
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/RoleContainerResource.java b/services/src/main/java/org/keycloak/services/resources/admin/RoleContainerResource.java
index 7728d61..e1f07fb 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/RoleContainerResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/RoleContainerResource.java
@@ -59,7 +59,6 @@ public class RoleContainerResource extends RoleResource {
             throw new NotFoundException();
         }
         role.setDescription(rep.getDescription());
-        role.setComposite(rep.isComposite());
         return Response.created(uriInfo.getAbsolutePathBuilder().path(role.getName()).build()).build();
     }
 
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/RoleResource.java b/services/src/main/java/org/keycloak/services/resources/admin/RoleResource.java
index 8bab186..91e42b4 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/RoleResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/RoleResource.java
@@ -36,7 +36,6 @@ public class RoleResource {
     protected void updateRole(RoleRepresentation rep, RoleModel role) {
         role.setName(rep.getName());
         role.setDescription(rep.getDescription());
-        role.setComposite(rep.isComposite());
     }
 
     protected void addComposites(List<RoleRepresentation> roles, RoleModel role) {
@@ -45,7 +44,6 @@ public class RoleResource {
             if (composite == null) {
                 throw new NotFoundException("Could not find composite role: " + rep.getName());
             }
-            if (!role.isComposite()) role.setComposite(true);
             role.addCompositeRole(composite);
         }
     }
@@ -96,6 +94,5 @@ public class RoleResource {
             }
             role.removeCompositeRole(composite);
         }
-        if (role.getComposites().size() == 0) role.setComposite(false);
     }
 }
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
index 3cc1e40..8c0d19f 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
@@ -69,7 +69,6 @@ public class CompositeRoleTest {
             final RoleModel realmRole2 = realm.addRole("REALM_ROLE_2");
             final RoleModel realmRole3 = realm.addRole("REALM_ROLE_3");
             final RoleModel realmComposite1 = realm.addRole("REALM_COMPOSITE_1");
-            realmComposite1.setComposite(true);
             realmComposite1.addCompositeRole(realmRole1);
 
             final UserModel realmComposite1User = realm.addUser("REALM_COMPOSITE_1_USER");
@@ -106,7 +105,6 @@ public class CompositeRoleTest {
             final RoleModel appRole2 = appRoleApplication.addRole("APP_ROLE_2");
 
             final RoleModel realmAppCompositeRole = realm.addRole("REALM_APP_COMPOSITE_ROLE");
-            realmAppCompositeRole.setComposite(true);
             realmAppCompositeRole.addCompositeRole(appRole1);
 
             final UserModel realmAppCompositeUser = realm.addUser("REALM_APP_COMPOSITE_USER");
@@ -125,7 +123,6 @@ public class CompositeRoleTest {
             appCompositeApplication.setManagementUrl("http://localhost:8081/app/logout");
             realm.updateCredential(appCompositeApplication.getApplicationUser(), UserCredentialModel.password("password"));
             final RoleModel appCompositeRole = appCompositeApplication.addRole("APP_COMPOSITE_ROLE");
-            appCompositeRole.setComposite(true);
             appCompositeApplication.addScope(appRole2);
             appCompositeRole.addCompositeRole(realmRole1);
             appCompositeRole.addCompositeRole(realmRole2);
diff --git a/testsuite/integration/src/test/resources/testcomposite.json b/testsuite/integration/src/test/resources/testcomposite.json
index 2b6a48a..1ac78c2 100755
--- a/testsuite/integration/src/test/resources/testcomposite.json
+++ b/testsuite/integration/src/test/resources/testcomposite.json
@@ -164,14 +164,12 @@
             },
             {
                 "name": "REALM_COMPOSITE_1",
-                "composite": true,
                 "composites": {
                     "realm": ["REALM_ROLE_1"]
                 }
             },
             {
                 "name": "REALM_APP_COMPOSITE_ROLE",
-                "composite": true,
                 "composites": {
                     "application": {
                         "APP_ROLE_APPLICATION" :[
@@ -193,7 +191,6 @@
             "APP_COMPOSITE_APPLICATION" : [
                 {
                     "name": "APP_COMPOSITE_ROLE",
-                    "composite": true,
                     "composites": {
                         "realm" : [
                             "REALM_ROLE_1",