Users
User sind über zwei systemweit eindeutige Kennzeichen zu identifizieren: Die user_id und der username. Der Username, eine vom Nutzer selbstgewählte oder aus einem zur Authentifizierung genutzten System übernommene Zeichenkette kann sich ändern, die user_id, ein von Stud.IP generierter MD5-Hash nicht.
Informationen über den Nutzer, für den das Script gerade ausgeführt wird, findet sich im global bekannten Objekt $user, das von page_open() initialisiert wird.
Darüber lassen sich verschiedene Informationen gewinnen:
| Wert | Beschreibung |
|---|---|
$GLOBALS['user']->id | user_id des aktuellen Nutzers |
$GLOBALS['user']->username | username des aktuellen Nutzers |
Berechtigungen
Abschnitt betitelt „Berechtigungen“Jeder Nutzer hat verschiedene Rechte im System, die über das global bekannte Objekt $perm zugänglich sind,
das ebenfalls von page_open() initialisiert wird.
Globale Rechte
Abschnitt betitelt „Globale Rechte“Die globale Rechtestufe wird über die Methode $perm->get_perm() erfragt, bzw. über $perm->have_perm(*<rechtestufe>*) geprüft.
Mögliche Werte für Rechtestufen sind:
nobodyuserauthortutordozentadminroot.
Die Methode$perm->check(*<rechtestufe>*) wird wie have_perm verwendet, liefert jedoch im Misserfolgsfall nicht FALSE zurück, sondern erzeugt eine Stud.IP-Seite mit einer Zugriffsfehlermeldung und beendet die Ausführung des aktuellen Scripts.
$perm->have_perm(*<rechtestufe>*) und $perm->check(*<rechtestufe>*) prüfen nicht exakt, sondern betrachten die übergebene Stufe als Mindeststufe.
$perm->have_perm('dozent') liefert also true, wenn der aktuelle Nutzer die globale Rechtestufe ‘dozent’, ‘admin’
oder ‘root’ hat.
Sonstige Rechte
Abschnitt betitelt „Sonstige Rechte“In jeder Veranstaltung und jeder Einrichtung kann ein Nutzer über Rechte verfügen, die von seiner globalen Rechtestufe abweichen können. Der Zugriff auf veranstaltungs- und einrichtungsbezogene Rechtestufen geschieht über die Methoden
$perm->get_studip_perm($range_id) und $perm->have_studip_perm(*<rechtestufe>*,$range_id).
Die range_id ist die seminar_id oder institut_id der zu überprüfenden Veranstaltung oder Einrichtung (jeweils MD5-Hashes).
$perm->have_studip_perm(*<rechtestufe>*,$range_id) prüft, ob der Nutzer mindestens über die angefragte Rechtestufe in der Veranstaltung
bzw. der Einrichtung verfügt (s.o.).
UserManagement
Abschnitt betitelt „UserManagement“Die Klasse UserManagement kapselt viele Aktionen, die mit Nutzerdaten regelmäßig durchgeführt werden. Sie ist vor allem entstanden, um die vielfältigen Aktionen rund um Neuanlegen und Löschen eines Nutzers an einer Stelle zusammenzufassen und z.B. Authentifizierungsplugins zugänglich zu machen.
Eine Detaildokumentation der verfügbaren Methoden sollte direkt dem Quellcode entnommen werden: https://gitlab.studip.de/studip/studip/-/blob/main/lib/classes/UserManagement.class.php
Die von der Klasse UserManagement berührten Daten liegen vor allem in den Tabellen auth_user_md5 und user_info.
Voreinstellungen
Abschnitt betitelt „Voreinstellungen“Die Nutzer können sich “ihr” Stud.IP mit einer Reihe von persönlichen Konfigurationsoptionen verändern. Sei es die nach dem Login angezeigte Startseite, die Sprache, die bevorzugte Sortierung aus der Seite “Meine Seminare”.
Der für alle Neuentwicklungen vorgesehene Weg führt über die Klasse UserConfig. Darüber lassen sich nutzerspezifische Einstellungen abrufen und speichern.