Tipps & Tricks - Benutzerverwaltung mit Groovy
Benutzer anlegen
Neue Benutzer können per Prozess angelegt und einer Benutzergruppe
zugeordnet werden. Eine
Groovy-Aktion
übernimmt das Einfügen mit folgendem Skript:
def user = g_om.createUser{
container = "System"
name = "user-${now().withoutFractionalSeconds}"
loginName = "UserU-${now().withoutFractionalSeconds}"
emailBiz = "user@example.org"
description = "User created with Groovy at ${now().withoutFractionalSeconds}"
memberOf = ["Benutzer", "6AA80844C3F99EF93BF4598EB18605BF86FDD3C5"]
}
Das Zugriffsobjekt
g_om stellt eine Struktur zur Verfügung,
mit der Operationen in der Benutzerverwaltung und Organisationsstruktur eines Portals
ausgeführt werden können. In diesem Skript-Beispiel werden beim Anlegen eines Benutzers
die folgenden Eigenschaften gesetzt, wobei
name und
loginName erforderlich sind. Alle weiteren Eigenschaften
sind optional.
- container: Container, in dem das Benutzerobjekt
angelegt werden soll. Angegeben werden kann der eindeutige Name
(in unserem Beispiel "system", die GUID oder der Pfad des Containers
- name: Der eindeutige Objektname
- loginName: Der eindeutige Anmeldename
- emailBiz: Die E-Mail-Adresse des Benutzers
- description: Beschreibung des Benutzerobjekts
- memberOf: Hier wird die Gruppenzugehörigkeiten des Benutzers definiert.
Angegeben werden kann der eindeutige Name, die GUID (in unserem Beispiel
"6AA80844C3F99EF93BF4598EB18605BF86FDD3C5") oder der Pfad der Gruppe.
Für Benutzernamen und Login wird hier ein Zeitstempel verwendet, um die Eindeutigkeit
sicherzustellen. Wird in einer Benutzerverwaltung die Eindeutigkeit eines
Benutzernamens und eines Logins nicht anhand einer ID oder eines Zeitstempels
gewährleistet, sondern stattdessen ein anderes Format verwendet, wie z.B. vorname.nachname,
muss beim Anlegen eines neuen Benutzers überprüft werden, ob bereits ein Benutzer
mit gleichen Daten existiert und bei Bedarf eine entsprechende Fehlerbehandlung
ausgeführt werden.
Mitgliedschaften eines Benutzers auslesen
Das folgende Skript kann verwendet werden, um die Gruppenzugehörigkeiten
eines Benutzers zu ermitteln.
def user = g_om.getUser(g_session.user.guid)
def sets = g_om.getMembershipSets(user)
def strAdminGroupGuid = "EF16F15EDA8562E19D7DD75BF2OP3001F119193C"
if (sets*.guid.contains(strAdminGroupGuid))
return adminGroupMemberTrue
else
return adminGroupMemberFalse
In diesem Beispiel wird mit Hilfe von
g_session.user.guid
die GUID des aktuell angemeldeten Benutzers ausgelesen.
g_om.getMembershipSets(member) liefert eine Liste mit allen - auch untergeordneten
- Gruppen, in denen der übergebene Benutzer Mitglied ist. Anschließend kann mit Hilfe
einer Iteration über die GUIDs der gefundenen Gruppen ermittelt werden,
ob sich die GUID der Administratorengruppe (die Sie im Skript mit
Ihrer eigenen Administratorengruppen-GUID ersetzen müssen) in der gelieferten Ergebnismenge
befindet. In Abhängigkeit dieser Auswertung - in diesem Beispiel die Auswertung, ob
der Benutzer Mitglied der Gruppe
Administratoren ist -
wird ein entsprechender Wert zurückgegeben, mit dem z.B. in einer
Groovy-Bedingung weitere Prozessschritte gezielt angesteuert werden können.