Versionen von Plugins.Benutzerdaten

Unwichtige Korrekturen ausblenden - Änderungen im Wiki Quelltext

 
 
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