From a632afb1dfe5076ad2f2529fe834de1c0099d2af Mon Sep 17 00:00:00 2001 From: Trey Dockendorf Date: Tue, 26 Nov 2024 10:38:43 -0500 Subject: [PATCH] Add special-groups-mapper --- META-INF/keycloak-scripts.json | 5 +++++ pom.xml | 2 +- special-groups-mapper.js | 11 +++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 special-groups-mapper.js diff --git a/META-INF/keycloak-scripts.json b/META-INF/keycloak-scripts.json index ed5f035..8610f36 100644 --- a/META-INF/keycloak-scripts.json +++ b/META-INF/keycloak-scripts.json @@ -17,6 +17,11 @@ "name": "User employeeStatus Enabled Mapper", "fileName": "status-mapper.js", "description": "User employeeStatus Enabled Mapper" + }, + { + "name": "Special Groups Mapper", + "fileName": "special-groups-mapper.js", + "description": "Special Groups Mapper" } ], "saml-mappers": [ diff --git a/pom.xml b/pom.xml index 07c6aa3..4f296f5 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ edu.osc osc-keycloak-scripts - 1.3.0 + 1.4.0 jar diff --git a/special-groups-mapper.js b/special-groups-mapper.js new file mode 100644 index 0000000..646b4bd --- /dev/null +++ b/special-groups-mapper.js @@ -0,0 +1,11 @@ +ArrayList = Java.type("java.util.ArrayList"); + +var groupNames = new ArrayList(); +var groups = user.getGroupsStream().toArray(); +for (var i = 0; i < groups.length; i++) { + groupNames.add(groups[i].getName()); +} +if (user.getFirstAttribute("nsAccountLock") != "TRUE" && user.getFirstAttribute("loginDisabled") != "TRUE") { + groupNames.add("enabled-users"); +} +groupNames;