Stud.IP-Plugins
- Alle Plugins ((:pitscount:))
- Admin-Plugins
- Core-Plugins
- Homepage-Plugins
- Portal-Plugins
- Standard-Plugins
- System-Plugins
- Auth-Plugins
- Plugins für Version:
1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 2.0
Benutzerdaten werden in Stud.IP in einer Datenbank verwaltet. Hierbei werden Benutzer
durch eine systemweit eindeutige Zeichenkette, die sogenannte user_id, identifiziert.
Sie besteht aus 32 Zeichen (Zahlen und Buchstaben) und wird bei der Registrierung
durch die PHP-Funktion uniqid
zufällig erzeugt.
Im Folgenden werden die für die Benutzerverwaltung relevanten Teile der Datenbank im Detail erläutert. Es handelt sich hierbei um die Tabellen auth_user_md5 und user_info. Die Benutzerdaten wurden auf mehrere Tabellen verteilt, um das System leichter an neue Gegebenheiten anzupassen. Die Bedeutung dieser Tabellen erschließt sich im folgenden.
Die Tabelle auth_user_md5 beinhaltet unter anderem folgende Datenfelder jedes Benutzers:
Außerdem wird im Feld perms die Rechtestufe des Nutzers gespeichert.
Die Tabelle user_info enthält einen Großteil der persönlichen Daten eines Benutzers, welche über den Reiter Nutzerdaten auf der eigenen Homepage vom Benutzer selbst verändert werden können.
Felder dieser Tabelle sind beispielsweise:
Die Klasse StudIPUser
dient dem einfachen und konsistenten Zugriff auf die Benutzerdaten
aus den einzelnen Tabellen, so dass diese nicht explizit mit SQL-Selects
abgefragt werden müssen. Sie sollte folglich verwendet werden, um mit dem eingeloggten
Benutzer zu arbeiten, und bietet Zugriff auf die Daten aus der Tabelle
auth_user_md5.
Nachfolgende Methoden stehen in dieser Klasse zur Verfügung:
getPermission
, gibt ein Permission-Objekt zurück
getUserid
getUsername
getSurname
getGivenname
, gibt den Vornamen zurück
Ein Permission-Objekt wird automatisch vom StudIPUser-Objekt erzeugt und stellt einige Methoden zur Verfügung, über die sich die Berechtigungen von Benutzern überprüfen lassen.
Dazu gehören:
hasRootPermission
hasAdminPermission
hasTutorPermission
hasTeacherPermission
hasStudentPermission
isStudent
Diese Methoden liefern alle true
oder false
zurück.
Anzumerken ist noch, dass hasStudentPermission
nur überprüft, ob der Benutzer
die Rechte eines Autors hat. isStudent
dagegen überprüft zusätzlich noch,
ob der Benutzer kein Dozent ist, da dieser ebenfalls die Rechte eines Autors hätte.
Wenn man die eigene Pluginklasse von der Klasse AbstractStudIPHomepagePlugin
ableitet, hat man Zugriff auf die Objekte StudIPUser
und Permission
. Dies
geschieht durch eine von der Oberklasse vererbte Methode
getUser
bzw. durch die Methode getPermission
der Klasse StudIPUser
.
Um auf Daten anderer Benutzer zuzugreifen, wie sie zum Beispiel in der Tabelle
user_info zu finden sind, wird die Klasse UserManagement
benötigt. Diese erfordert
im Konstruktor als Parameter die user_id des Benutzers, mit dem gearbeitet
werden soll.
Wurde ein Objekt dieser Klasse erzeugt, ist es möglich, auf die Benutzerdaten über
das assoziative Array $user_data
zuzugreifen, welches die Daten aus den Tabellen
auth_user_md5 und user_info enthält.
Der Zugriff erfolgt über $user_data[’Tabellenname.Feldname’]
. Um zum
Beispiel den Benutzernamen aus der Tabelle auth_user_md5 abzufragen:
$user_data[’auth_user_md5.username’]
.
Benutzerdaten lassen sich über die Methode changeUser($array)
verändern,
wobei $array
ein assoziatives Array von der gleichen Form wie eben beschrieben
sein muss.
Die user_id eines beliebigen Benutzers lässt sich über die Funktion get_userid($username)
herausfinden.