From 94b1253f565f0fd06aa5018071e261b1617c40ff Mon Sep 17 00:00:00 2001 From: AFaust Date: Thu, 20 Feb 2020 19:11:38 +0100 Subject: [PATCH] Enhance authority display name --- .../documentlibrary/permissions.post.json.js | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/repository/src/main/webscripts/de/acosix/keycloak/customisations/slingshot/documentlibrary/permissions.post.json.js b/repository/src/main/webscripts/de/acosix/keycloak/customisations/slingshot/documentlibrary/permissions.post.json.js index 6250f21..0b650c5 100644 --- a/repository/src/main/webscripts/de/acosix/keycloak/customisations/slingshot/documentlibrary/permissions.post.json.js +++ b/repository/src/main/webscripts/de/acosix/keycloak/customisations/slingshot/documentlibrary/permissions.post.json.js @@ -13,29 +13,33 @@ function main() permissionObj = permissions.getJSONObject(idx); add = !permissionObj.has('remove') || !permissionObj.getBoolean('remove'); - if (add) + authority = permissionObj.getString('authority'); + permission = permissionObj.getString('role'); + + if (/^ROLE_.+$/.test(authority)) { - authority = permissionObj.getString('authority'); - permission = permissionObj.getString('role'); - - if (/^ROLE_.+$/.test(authority)) + // lazy init + if (!keycloakRolesHash) { - // lazy init - if (!keycloakRolesHash) + keycloakRolesArr = keycloakRoles.listRoles(); + keycloakRolesHash = {}; + for (jdx = 0; jdx < keycloakRolesArr.length; jdx++) { - keycloakRolesArr = keycloakRoles.listRoles(); - keycloakRolesHash = {}; - for (jdx = 0; jdx < keycloakRolesArr.length; jdx++) - { - keycloakRolesHash[keycloakRolesArr[jdx].name] = true; - } + keycloakRolesHash[keycloakRolesArr[jdx].name] = true; } + } - // only process if role mapped from Keycloak - if (keycloakRolesHash.hasOwnProperty(authority)) + // only process if role mapped from Keycloak + if (keycloakRolesHash.hasOwnProperty(authority)) + { + if (add) { node.setPermission(permission, authority); } + else + { + node.removePermission(permission, authority); + } } } }