Das Benutzermanager-API

Das Konzept

Das Benutzermanager-API verfügt über zwei Sätze von Prozeduren. Der Content Management Server spricht über je einen Prozedursatz den Benutzermanager für das Redaktions- und das Live-System an. Über die Prozeduren kann der Content Management Server unter anderem:

  • die Gruppen und Benutzer des Redaktionssystems und deren Rechte ermitteln,
  • Benutzer des Redaktionssystems über ein Passwort authentifizieren,
  • die Gruppen des Live-Systems ermitteln.

Die Namen der Prozeduren für den Zugriff auf den Benutzermanager des Live-Systems enthalten die Zeichenkette secondary.

Die Prozedursätze für den internen Benutzermanager und einige weit verbreitete Benutzermanager wie LDAP und ADS sind in Fiona im Verzeichnis instance/instName/script/cm/serverCmds/userman/handler als Tcl-Dateien enthalten. Die dazu gehörenden Konfigurationsdateien, in denen auf die Tcl-Dateien verwiesen wird, befinden sich im Verzeichnis instance/instName/config.

Um einen vorhandenen Prozedursatz zu verwenden,

  • passen Sie die Parameter in der dazu gehörenden Konfigurationsdatei an die Gegebenheiten an,
  • binden Sie sie in die Systemkonfiguration ein und
  • starten Sie den Content Management Server neu.

Siehe hierzu auch die detaillierte Beschreibung zum Aufbau der Konfigurationsdateien.

Um einen neuen Prozedursatz zu erstellen und zu verwenden, können Sie eine vorhandene Tcl-Interface-Datei einschließlich Konfigurationsdatei kopieren, die Prozeduren redefinieren, die Konfiguration anpassen und einbinden.

Prozeduren des Benutzermanager-APIs

checkLoginAndPassword login password

Die Funktion prüft, ob ein Benutzer mit dem Anmeldenamen login das Passwort password hat. Der Content Manager übergibt der Funktion das unverschlüsselte Passwort. Hat der Benutzer das Passwort, so gibt die Funktion 1 zurück, hat er es nicht oder existiert der Benutzer nicht, gibt sie 0 zurück. Im Fehlerfall ist der Rückgabewert die Fehlermeldung.

groupsWhere whereParams
secondaryGroupsWhere whereParams

Diese Prozedur liefert die Liste der Namen der Benutzergruppen, bei denen die Suchkriterien (whereParams) erfüllt sind. Suchkritierien werden als Name-Wert-Paare angegeben. Einziges Suchkriterium ist groupText.

groupWithNameExists name
secondaryGroupWithNameExists name

Die Prozedur prüft, ob die Benutzergruppe mit dem Namen name existiert und gibt 1 zurück, wenn dies der Fall ist, und 0, wenn die Gruppe nicht existiert.

groupWithNameGet name key
secondaryGroupWithNameGet name key

Die Prozedur liest den Wert des der Gruppe name zugewiesenen Feldes key aus und gibt ihn zurück. Ein externer Benutzermanager muss sicherstellen, dass mindestens dann gültige Werte geliefert werden, wenn man als key name oder realName angibt. Beim Redaktionssystem muss außerdem displayTitle den für die Anzeige verwendeten Titel der Gruppe liefern. Im Fehlerfall wird die Fehlermeldung zurückgegeben. Die Tcl-Routine sollte Fehlermeldungen des externen Benutzermanagers in jedem Falle weiterreichen.

groupWithNameHasGlobalPerm name permission

Die Prozedur prüft, ob die Benutzergruppe mit dem Namen name das globale Recht permission hat und gibt 1 zurück, wenn dies der Fall ist. Hat die Gruppe das Recht nicht, so gibt die Prozedur 0 zurück, im Fehlerfall ist der Rückgabewert die Fehlermeldung.

listGroups
listSecondaryGroups

Diese Prozedur hat keine Parameter. Sie gibt die Liste der Gruppennamen zurück. Im Fehlerfall gibt sie die Fehlermeldung zurück.

listUsers

Diese Prozedur hat keine Parameter. Sie gibt die Liste der Benutzernamen zurück. Im Fehlerfall gibt sie die Fehlermeldung zurück.

typeForGroupGetKey key
typeForSecondaryGroupGetKey key

Diese Prozedur gibt den Typ eines group-Parameters zurück (list oder string).

typeForUserGetKey key

Diese Prozedur gibt den Typ eines user-Parameters zurück (list oder string).

usersWhere whereParams

Diese Prozedur liefert die Liste der Benutzer-Logins, bei denen die Suchkriterien (whereParams) erfüllt sind. Suchkritierien werden als Name-Wert-Paare angegeben. Beim integrierten Benutzermanager ist als einziges Suchkriterium userText verfügbar.

userWithLoginExists login

Die Prozedur prüft, ob der Benutzer mit dem Anmeldenamen login existiert und gibt 1 zurück, wenn dies der Fall ist, und 0, wenn der Benutzer nicht existiert.

userWithLoginGet login key

Die Prozedur liest den Wert des dem Benutzer login zugewiesenen Feldes key aus und gibt ihn zurück. Ein externer Benutzermanager muss sicherstellen, dass mindestens dann gültige Werte geliefert werden, wenn man als key login, realName, email, groups, displayTitle oder defaultGroup angibt. Im Fehlerfall wird die Fehlermeldung zurückgegeben. Die Tcl-Routine sollte Fehlermeldungen des externen Benutzermanagers in jedem Falle weiterreichen.

userWithLoginHasGlobalPerm login permission

Die Prozedur prüft, ob der Benutzer mit dem Anmeldenamen login das globale Recht permission hat und gibt 1 zurück, wenn dies der Fall ist. Hat der Benutzer das Recht nicht, so gibt die Prozedur 0 zurück, im Fehlerfall ist der Rückgabewert die Fehlermeldung.

Der integrierte Benutzermanager stellt fest, ob ein Benutzer ein Recht hat, indem er prüft, ob das Recht dem Benutzer direkt erteilt wurde oder ob der Benutzer Mitglied einer Benutzergruppe mit diesem Recht ist.

Der Benutzermanager hat nur die Aufgabe, die Namen globaler Rechte den Benutzern und Benutzergruppen zuzuordnen. Die Verwaltung der Rechte überlässt er den Anwendungen, die auf ihn zugreifen.

userWithLoginIsOwnerOf login ownedLogin

Die Prozedur prüft, ob der Benutzer mit dem Anmeldenamen login Verwalter des Benutzers mit dem Anmeldenamen ownedLogin ist. Ist dies der Fall, so gibt die Prozedur 1 zurück, andernfalls 0. Im Fehlerfall ist der Rückgabewert die Fehlermeldung.

Mit dieser Anfrage wird für den Benutzer login die Berechtigung ermittelt, die Einstellungen des Benutzers ownedLogin zu ändern. Eine einfache Implementation liefert hierfür den Rückgabewert von userWithLoginIsSuperUser login.

userWithLoginIsSuperUser login

Der Content Manager übergibt dieser Prozedur den Anmeldenamen login. Die Prozedur prüft, ob der Benutzer mit diesem Anmeldenamen ein Superuser ist und gibt 1 zurück, wenn dies der Fall ist, und 0, wenn der Benutzer kein Superuser ist. Im Fehlerfall gibt die Prozedur die Fehlermeldung zurück.