From c2ad9189752307dec9ab6eaf44a4c058e4e5c21f Mon Sep 17 00:00:00 2001 From: Bill Burke Date: Mon, 2 Nov 2015 11:19:19 -0500 Subject: [PATCH] group model --- .../META-INF/jpa-changelog-1.7.0.xml | 56 +++++++++++++++++++ .../META-INF/jpa-changelog-master.xml | 1 + .../jpa/updater/JpaUpdaterProvider.java | 2 +- .../main/resources/META-INF/persistence.xml | 4 ++ .../keycloak/migration/MigrationModel.java | 2 +- .../keycloak/models/jpa/JpaRealmProvider.java | 8 +++ .../jpa/entities/GroupAttributeEntity.java | 4 +- .../models/jpa/entities/GroupEntity.java | 13 ++--- .../jpa/entities/GroupRoleMappingEntity.java | 3 +- 9 files changed, 80 insertions(+), 13 deletions(-) create mode 100755 connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.7.0.xml diff --git a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.7.0.xml b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.7.0.xml new file mode 100755 index 0000000000..ba886698ba --- /dev/null +++ b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.7.0.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml index 6cd96c626c..93c2824a42 100755 --- a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml +++ b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-master.xml @@ -10,4 +10,5 @@ + diff --git a/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java b/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java index 60b063513e..a5429e4685 100755 --- a/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java +++ b/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterProvider.java @@ -12,7 +12,7 @@ public interface JpaUpdaterProvider extends Provider { public String FIRST_VERSION = "1.0.0.Final"; - public String LAST_VERSION = "1.6.0"; + public String LAST_VERSION = "1.7.0"; public String getCurrentVersionSql(String defaultSchema); diff --git a/connections/jpa/src/main/resources/META-INF/persistence.xml b/connections/jpa/src/main/resources/META-INF/persistence.xml index b8592a365c..e415488be3 100755 --- a/connections/jpa/src/main/resources/META-INF/persistence.xml +++ b/connections/jpa/src/main/resources/META-INF/persistence.xml @@ -31,6 +31,10 @@ org.keycloak.models.jpa.entities.RequiredActionProviderEntity org.keycloak.models.jpa.session.PersistentUserSessionEntity org.keycloak.models.jpa.session.PersistentClientSessionEntity + org.keycloak.models.jpa.entities.GroupEntity + org.keycloak.models.jpa.entities.GroupAttributeEntity + org.keycloak.models.jpa.entities.GroupRoleMappingEntity + org.keycloak.models.jpa.entities.UserGroupMembershipEntity org.keycloak.events.jpa.EventEntity diff --git a/model/api/src/main/java/org/keycloak/migration/MigrationModel.java b/model/api/src/main/java/org/keycloak/migration/MigrationModel.java index beb2f984be..596f2783da 100755 --- a/model/api/src/main/java/org/keycloak/migration/MigrationModel.java +++ b/model/api/src/main/java/org/keycloak/migration/MigrationModel.java @@ -11,7 +11,7 @@ public interface MigrationModel { /** * Must have the form of major.minor.micro as the version is parsed and numbers are compared */ - public static final String LATEST_VERSION = "1.6.0"; + public static final String LATEST_VERSION = "1.7.0"; String getStoredVersion(); void setStoredVersion(String version); diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java index c5396cb50b..5fe5faa7f3 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProvider.java @@ -103,6 +103,14 @@ public class JpaRealmProvider implements RealmProvider { adapter.removeClient(a.getId()); } + int num = em.createNamedQuery("deleteGroupRoleMappingsByRealm") + .setParameter("realm", realm).executeUpdate(); + num = em.createNamedQuery("deleteGroupAttributesByRealm") + .setParameter("realm", realm).executeUpdate(); + num = em.createNamedQuery("deleteGroupsByRealm") + .setParameter("realm", realm).executeUpdate(); + + em.remove(realm); return true; } diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupAttributeEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupAttributeEntity.java index 8ee79e093d..87744e10af 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupAttributeEntity.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupAttributeEntity.java @@ -17,9 +17,9 @@ import javax.persistence.Table; @NamedQueries({ @NamedQuery(name="getGroupAttributesByNameAndValue", query="select attr from GroupAttributeEntity attr where attr.name = :name and attr.value = :value"), @NamedQuery(name="deleteGroupAttributesByGroup", query="delete from GroupAttributeEntity attr where attr.group = :group"), - @NamedQuery(name="deleteGroupAttributesByRealm", query="delete from GroupAttributeEntity attr where attr.group IN (select u from GroupEntity u where u.realmId=:realmId)") + @NamedQuery(name="deleteGroupAttributesByRealm", query="delete from GroupAttributeEntity attr where attr.group IN (select u from GroupEntity u where u.realm=:realm)") }) -@Table(name="USER_ATTRIBUTE") +@Table(name="GROUP_ATTRIBUTE") @Entity public class GroupAttributeEntity { diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupEntity.java index b944379cea..d5851fd1b6 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupEntity.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupEntity.java @@ -22,15 +22,14 @@ import java.util.Collection; * @version $Revision: 1 $ */ @NamedQueries({ - @NamedQuery(name="getAllGroupsByRealm", query="select u from GroupEntity u where u.realmId = :realmId order by u.name"), - @NamedQuery(name="getGroupById", query="select u from GroupEntity u where u.id = :id and u.realmId = :realmId"), + @NamedQuery(name="getAllGroupsByRealm", query="select u from GroupEntity u where u.realm = :realm order by u.name"), + @NamedQuery(name="getGroupById", query="select u from GroupEntity u where u.id = :id and u.realm = :realm"), @NamedQuery(name="getGroupIdsByParent", query="select u.id from GroupEntity u where u.parent = :parent"), - @NamedQuery(name="getGroupByName", query="select u from GroupEntity u where u.name = :name and u.realmId = :realmId"), - @NamedQuery(name="getGroupCount", query="select count(u) from GroupEntity u where u.realmId = :realmId"), - @NamedQuery(name="deleteGroupsByRealm", query="delete from GroupEntity u where u.realmId = :realmId") + @NamedQuery(name="getGroupCount", query="select count(u) from GroupEntity u where u.realm = :realm"), + @NamedQuery(name="deleteGroupsByRealm", query="delete from GroupEntity u where u.realm = :realm") }) @Entity -@Table(name="GROUP_ENTITY") +@Table(name="KEYCLOAK_GROUP") public class GroupEntity { @Id @Column(name="ID", length = 36) @@ -44,7 +43,7 @@ public class GroupEntity { private GroupEntity parent; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "REALM") + @JoinColumn(name = "REALM_ID") private RealmEntity realm; @OneToMany(cascade = CascadeType.REMOVE, orphanRemoval = true, mappedBy="group") diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupRoleMappingEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupRoleMappingEntity.java index 86db554f71..27fe1ac2a2 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupRoleMappingEntity.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/GroupRoleMappingEntity.java @@ -20,7 +20,7 @@ import java.io.Serializable; @NamedQuery(name="groupHasRole", query="select m from GroupRoleMappingEntity m where m.group = :group and m.roleId = :roleId"), @NamedQuery(name="groupRoleMappings", query="select m from GroupRoleMappingEntity m where m.group = :group"), @NamedQuery(name="groupRoleMappingIds", query="select m.roleId from GroupRoleMappingEntity m where m.group = :group"), - @NamedQuery(name="deleteGroupRoleMappingsByRealm", query="delete from GroupRoleMappingEntity mapping where mapping.group IN (select u from GroupEntity u where u.realmId=:realmId)"), + @NamedQuery(name="deleteGroupRoleMappingsByRealm", query="delete from GroupRoleMappingEntity mapping where mapping.group IN (select u from GroupEntity u where u.realm=:realm)"), @NamedQuery(name="deleteGroupRoleMappingsByRole", query="delete from GroupRoleMappingEntity m where m.roleId = :roleId"), @NamedQuery(name="deleteGroupRoleMappingsByGroup", query="delete from GroupRoleMappingEntity m where m.group = :group") @@ -55,7 +55,6 @@ public class GroupRoleMappingEntity { this.roleId = roleId; } - public static class Key implements Serializable { protected GroupEntity group;