From 1fe8da67dcf931059db3b546efbab321a845be45 Mon Sep 17 00:00:00 2001 From: Stian Thorgersen Date: Thu, 30 Jun 2016 08:51:49 +0200 Subject: [PATCH] KEYCLOAK-3172 Add view authorization role to existing realms --- .../migration/migrators/MigrateTo2_0_0.java | 27 +--------- .../migration/migrators/MigrationUtils.java | 50 +++++++++++++++++++ 2 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 server-spi/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java diff --git a/server-spi/src/main/java/org/keycloak/migration/migrators/MigrateTo2_0_0.java b/server-spi/src/main/java/org/keycloak/migration/migrators/MigrateTo2_0_0.java index 2b3898c003..23368f3130 100644 --- a/server-spi/src/main/java/org/keycloak/migration/migrators/MigrateTo2_0_0.java +++ b/server-spi/src/main/java/org/keycloak/migration/migrators/MigrateTo2_0_0.java @@ -17,14 +17,10 @@ package org.keycloak.migration.migrators; -import org.keycloak.Config; import org.keycloak.migration.ModelVersion; import org.keycloak.models.AdminRoles; -import org.keycloak.models.ClientModel; -import org.keycloak.models.Constants; import org.keycloak.models.KeycloakSession; import org.keycloak.models.RealmModel; -import org.keycloak.models.RoleModel; import org.keycloak.models.utils.KeycloakModelUtils; public class MigrateTo2_0_0 { @@ -40,27 +36,8 @@ public class MigrateTo2_0_0 { private void migrateAuthorizationServices(RealmModel realm) { KeycloakModelUtils.setupAuthorizationServices(realm); - ClientModel client = realm.getMasterAdminClient(); - - if (client.getRole(AdminRoles.MANAGE_AUTHORIZATION) == null) { - RoleModel role = client.addRole(AdminRoles.MANAGE_AUTHORIZATION); - role.setDescription("${role_" + AdminRoles.MANAGE_AUTHORIZATION + "}"); - role.setScopeParamRequired(false); - - client.getRealm().getRole(AdminRoles.ADMIN).addCompositeRole(role); - } - - if (!realm.getName().equals(Config.getAdminRealm())) { - client = realm.getClientByClientId(Constants.REALM_MANAGEMENT_CLIENT_ID); - - if (client.getRole(AdminRoles.MANAGE_AUTHORIZATION) == null) { - RoleModel role = client.addRole(AdminRoles.MANAGE_AUTHORIZATION); - role.setDescription("${role_" + AdminRoles.MANAGE_AUTHORIZATION + "}"); - role.setScopeParamRequired(false); - - client.getRole(AdminRoles.REALM_ADMIN).addCompositeRole(role); - } - } + MigrationUtils.addAdminRole(realm, AdminRoles.VIEW_AUTHORIZATION); + MigrationUtils.addAdminRole(realm, AdminRoles.MANAGE_AUTHORIZATION); } } diff --git a/server-spi/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java b/server-spi/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java new file mode 100644 index 0000000000..91f812e0bc --- /dev/null +++ b/server-spi/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java @@ -0,0 +1,50 @@ +/* + * Copyright 2016 Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.keycloak.migration.migrators; + +import org.keycloak.Config; +import org.keycloak.models.*; + +/** + * @author Stian Thorgersen + */ +public class MigrationUtils { + + public static void addAdminRole(RealmModel realm, String roleName) { + ClientModel client = realm.getMasterAdminClient(); + if (client.getRole(roleName) == null) { + RoleModel role = client.addRole(roleName); + role.setDescription("${role_" + roleName + "}"); + role.setScopeParamRequired(false); + + client.getRealm().getRole(AdminRoles.ADMIN).addCompositeRole(role); + } + + if (!realm.getName().equals(Config.getAdminRealm())) { + client = realm.getClientByClientId(Constants.REALM_MANAGEMENT_CLIENT_ID); + if (client.getRole(roleName) == null) { + RoleModel role = client.addRole(roleName); + role.setDescription("${role_" + roleName + "}"); + role.setScopeParamRequired(false); + + client.getRole(AdminRoles.REALM_ADMIN).addCompositeRole(role); + } + } + } + +}