Versionen von Plugins.Benutzerdaten

Unwichtige Korrekturen ausblenden - Änderungen im Layout

 
 
01.04.2011 23:40 Uhr von tthelen -
Zeilen 1-2 hinzugefügt:
(:redirect 'http://docs.studip.de/develop/Plugins/Benutzerdaten':)
 
 
13.09.2009 22:30 Uhr von eludwig -
Zeile 85 bearbeitet:
public function TestPlugin() {
geändert in:
public function __construct() {
 
 
13.09.2009 22:24 Uhr von eludwig -
Zeilen 11-12 bearbeitet:
im Detail erläutert. Es handelt sich hierbei um die Tabellen ''auth_user_md5'',
''user_info'', ''roles_studipperms'' und ''roles''. Die Benutzerdaten wurden auf mehrere Tabellen
geändert in:
im Detail erläutert. Es handelt sich hierbei um die Tabellen ''auth_user_md5'' und
''user_info''. Die Benutzerdaten wurden auf mehrere Tabellen
Zeilen 14-15 bearbeitet:
dieser Tabellen erschließt sich im Folgenden.
geändert in:
dieser Tabellen erschließt sich im folgenden.
Zeilen 20-21 bearbeitet:
* ''user_id'', welches hier als Primärschlüssel der Tabelle dient
* ''username'', der Name mit dem sich ein Benutzer anmeldet
geändert in:
* ''user_id'', welche hier als Primärschlüssel der Tabelle dient
* ''username'', der Name, mit dem sich ein Benutzer anmeldet
Zeilen 26-29 bearbeitet:
Außerdem wird im Feld ''perms'' die Benutzerberechtigung gespeichert. Dies geschieht
in Form eines Namens, der in der Tabelle ''roles_studipperms'' mit einer dazugehörigen
Identifikationsnummer definiert ist.
geändert in:
Außerdem wird im Feld ''perms'' die Rechtestufe des Nutzers gespeichert.
Zeilen 37-43 bearbeitet:
* ''title_front'' bzw. ''title_rear'', welche den vor- bzw. nachgestellten Titel einer Person
enthalten

!!!roles_studipperms und roles

'''folgt...'''
geändert in:
* ''title_front'' bzw. ''title_rear'', welche den vor- bzw. nachgestellten Titel einer Person enthalten
Zeilen 53-56 gelöscht:
Beim Erzeugen eines Objektes aus dieser Klasse wird automatisch die user_id des
eingeloggten Benutzers aus einem globalen assoziativen Array @@auth@@ mit dem Element
@@uid@@ gelesen.
Zeile 77 bearbeitet:
geschieht durch eine von der Klasse @@AbstractStudIPPlugin@@ vererbte Methode
geändert in:
geschieht durch eine von der Oberklasse vererbte Methode
Zeilen 82-84 bearbeitet:
public $user;
private $permissions;
geändert in:
private $user;
private $permission;
Zeile 86 bearbeitet:
parent::AbstractStudIPHomepagePlugin();
geändert in:
parent::__construct();
Zeile 88 bearbeitet:
$this->permissions = $this->user->getPermission();
geändert in:
$this->permission = $this->user->getPermission();
Zeilen 91-92 bearbeitet:
public function Test() {
if ($this->permissions->isStudent()) {
geändert in:
public function test() {
if ($this->permission->isStudent()) {
Zeile 94 bearbeitet:
echo $this->user->username;
geändert in:
echo $this->user->getUsername();
Zeile 107 bearbeitet:
Wurde ein Objekt dieser Klasse erzeugt, ist es möglich auf die Benutzerdaten über
geändert in:
Wurde ein Objekt dieser Klasse erzeugt, ist es möglich, auf die Benutzerdaten über
Zeilen 118-119 bearbeitet:
Die ''user_id'' eines beliebigen Benutzers lässt sich über eine Abfrage der Tabelle
''auth_user_md5'' mit dem dazugehörigen Benutzernamen herausfinden.
geändert in:
Die ''user_id'' eines beliebigen Benutzers lässt sich über die Funktion @@get_userid($username)@@ herausfinden.
 
 
27.11.2008 23:11 Uhr von krueger -
Zeilen 1-130 hinzugefügt:
!Zugriff auf Benutzerdaten

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.

!!Grundlegende Tabellen der Datenbank

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'',
''user_info'', ''roles_studipperms'' und ''roles''. Die Benutzerdaten wurden auf mehrere Tabellen
verteilt, um das System leichter an neue Gegebenheiten anzupassen. Die Bedeutung
dieser Tabellen erschließt sich im Folgenden.

!!!auth_user_md5

Die Tabelle ''auth_user_md5'' beinhaltet unter anderem folgende Datenfelder jedes
Benutzers:
* ''user_id'', welches hier als Primärschlüssel der Tabelle dient
* ''username'', der Name mit dem sich ein Benutzer anmeldet
* ''Vorname''
* ''Nachname''
* ''Email''

Außerdem wird im Feld ''perms'' die Benutzerberechtigung gespeichert. Dies geschieht
in Form eines Namens, der in der Tabelle ''roles_studipperms'' mit einer dazugehörigen
Identifikationsnummer definiert ist.

!!!user_info

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:
* ''geschlecht'', wobei 1 für weiblich und 0 für männlich steht
* ''score'', enthält die StudIP-Punktzahl des Benutzers
* ''title_front'' bzw. ''title_rear'', welche den vor- bzw. nachgestellten Titel einer Person
enthalten

!!!roles_studipperms und roles

'''folgt...'''

!!Die StudIPUser-Klasse

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

Beim Erzeugen eines Objektes aus dieser Klasse wird automatisch die user_id des
eingeloggten Benutzers aus einem globalen assoziativen Array @@auth@@ mit dem Element
@@uid@@ gelesen.

!!Die Permission-Klasse

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.

!!Zugriff auf diese Objekte

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 Klasse @@AbstractStudIPPlugin@@ vererbte Methode
@@getUser@@ bzw. durch die Methode @@getPermission@@ der Klasse @@StudIPUser@@.

(:source lang=php:)[@
class TestPlugin extends AbstractStudIPHomepagePlugin {
public $user;
private $permissions;

public function TestPlugin() {
parent::AbstractStudIPHomepagePlugin();
$this->user = $this->getUser();
$this->permissions = $this->user->getPermission();
}

public function Test() {
if ($this->permissions->isStudent()) {
echo _("Ein Student mit dem Benutzernamen ");
echo $this->user->username;
}
}
}
@]

!!Zugriff auf andere Benutzerdaten

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 eine Abfrage der Tabelle
''auth_user_md5'' mit dem dazugehörigen Benutzernamen herausfinden.

 

 

Quelle: Basis-Wiki-Hilfe | Letzte Änderung: 01.04.2011 23:40 Uhr, tthelen | Local view: Basis-Hilfe