User Group
Sämtliche Operationen rund um den Benutzer- und Gruppenstamm erfolgt über die Klasse \FWUser. Aufgrund der komplexen Architektur ist die Initialisierung ziemlich Ressourcenaufwendig. Daher verfügt die Klasse \FWUser über die statische Methode getFWUserObject(), mit welcher eine Instanz der Klasse \FWUser zurück gegeben werden kann. Die Methode \FWUser::getFWUserObject() erstellt dabei beim ersten Aufruf eine neue Instanz der Klasse \FWUser und gibt diese zurück. Bei jedem weiteren Aufruf der Methode \FWUser::getFWUserObject() wird die bestehende Instanz von \FWUser geklont und der interne Cache der geklonten Instanz mit der originalen Instanz verlinkt. Der Cache beinhaltet alle Informationen von Benutzer und Gruppen die während des gesamten Seitenaufrufes jemals geladen wurden. Somit kann die Anzahl Datenbankabfragen auf ein Minimum gehalten werden.
Verwendet wird die Klasse \FWUser daher nie durch manuelles Instantiieren, sondern immer durch Verwendung der Methode \FWUser::getFWUserObject():
Die Klasse \FWUser verfügt über die zwei Objekte \FWUser->objUser und \FWUser->objGroup welche als zentrale Elemente zur Verwaltung der Benutzer, rsp. der Gruppen dienen.
Benutzer
Das Objekt \FWUser->objUser dient zwei Funktionen. Einerseits repräsentiert es den aktuell authentifizierten Benutzer (sofern dies jemand ist) und andererseits dient es als Schnittstelle zum gesamten Benutzerstamm. Letzteres bezieht sich auf die Methoden \FWUser->objUser->getUser() und \FWUser->objUser->getUsers().
Authentifizierter Besucher
Mittels der Methode \FWUser->objUser->login() kann im Frontend (im Backend ist dies nicht notwendig, da dies ja sowie so der Fall ist) überprüft werden, ob der aktuelle Besucher authentifiziert ist:
Benutzer Informationen laden
Die Informationen eines einzelnen Benutzers kann mittels dessen ID über die Methode \FWUser->objUser->getUser() geladen werden:
Mittels der Methode \FWUser->objUser->getUsers() können mehrere Benutzer geladen werden.
Die Methode \FWUser->objUser->getUsers() ist sehr mächtig was die selektive Abfrage betrifft. Einige Beispiele:
Benutzer Informationen abfragen
Die Benutzer Informationen sind in drei Bereiche unterteilt, die Konto, Profil und Sonstige Informationen.
Konto Informationen
Eigenschaft | Methode | Kommentar |
---|---|---|
Konto ID | User->getId() | Die ID des Benutzerkontos |
Benutzername | User->getUsername() | Der Benutzername (Login Name) des Benutzers |
E-Mail Adresse | User->getEmail() | E-Mail Adresse des Benutzers |
Status | User->getActiveStatus() | Definiert ob das Benutzerkonto (in-)aktiv ist |
Benutzerrolle | User->getAdminStatus() | Definiert ob es sich um einen Administrator handelt |
Frontend Sprache | User->getFrontendLanguage() | Bevorzugte Sprache (als ID) im Frontend |
Backend Sprache | User->getBackendLanguage() | Bevorzugte Sprache (als ID) im Backend |
Letzte Aktivität | User->getLastActivityTime() | Die Zeit (als Timestamp) an dem der Benutzer das letzte Mal einen Seitenaufruf getätigt hat. |
Letzte Authentifizierung | User->getLastAuthenticationTime() | Die Zeit (als Timestamp) an dem sich der Benutzer das letzte Mal authentifiziert hat. |
Registrierungs Datum | User->getRegistrationDate() | Das Datum (als Timestamp) an dem sich der Benutzer registriert hat. |
Profil Informationen
Die Profile Eigenschaften werden mittels der Methode User->getProfileAttribute() abgerufen. Als erster Parameter wird dabei die abzufragende Eigenschaft als formale Zeichenkette übergeben. Die folgende Tabelle listet die verfügbaren Eigenschaften auf:
Eigenschaft | Beschreibung |
---|---|
picture | Avatar |
gender | Geschlecht |
title | Anrede |
firstname | Vorname |
lastname | Nachname |
company | Firma |
address | Adresse |
city | Ort |
zip | PLZ |
country | Land |
phone_office | Tel. Büro |
phone_private | Tel. Privat |
phone_mobile | Tel. Mobile |
phone_fax | Fax |
birthday | Geburtstag |
website | Website |
profession | Beruf |
interests | Interessen |
signature | Signatur |
Beispiele:
Benutzerdefinierte Profil Eigenschaften
Eigen definierte Profil Eigenschaften werden gleich wie die normalen Profil Eigenschaften mittels der Methode User->getProfileAttribute() abgefragt. Dabei wird als erster Parameter die numerische ID der abzufragenden Eigenschaft übergeben.
Beispiele:
Sonstige Informationen
Beschreibung | Methode |
---|---|
Liefert ein Array gefüllt mit dynamischen Zugriffs-ID's des Benutzers | User->getDynamicPermissionIds() |
Bestimmt den Zugriff auf die E-Mail Adresse (dessen Sichtbarkeit). Dabei bestehend die folgenden Arten: everyone Jeder darf die E-Mail Adresse einsehen members_only Nur Mitglieder dürfen die E-Mail Adresse einsehen nobody Niemand darf die E-Mail Adresse einsehen (ausgenommen Administratoren) |
User->getEmailAccess() |
Liefert ein Datum (Timestamp) bis wann das Konto gültig ist. | User->getExpirationDate() |
Bestimmt den Zugriff auf das Profil (dessen Sichtbarkeit). Dabei bestehend die folgenden Arten: everyone Jeder darf das Profil einsehen members_only Nur Mitglieder dürfen das Profil einsehen nobody Niemand darf das Profil einsehen (ausgenommen Administratoren) |
User->getProfileAccess() |
User->getRestoreKey() | |
User->getRestoreKeyTime() | |
Liefert ein Array gefüllt mit statischen Zugriffs-ID's des Benutzers | User->getStaticPermissionIds() |
Mittels dieser Methode kann überprüft werden, ob der betroffene Benutzer Zugriff auf das Front-/ Backend hat. | User->hasModeAccess($backend = false) |
Definiert ob der Benutzer berechtigt ist den Zugriff auf seine E-Mail Adresse (dessen Sichtbarkeit) zu ändern. | User->isAllowedToChangeEmailAccess() |
Definiert ob der Benutzer berechtigt ist den Zugriff auf sein Profile (dessen Sichtbarkeit) zu ändern. | User->isAllowedToChangeProfileAccess() |
Definiert ob der Benutzer berechtigt ist sein Konto zu löschen. | User->isAllowedToDeleteAccount() |
Benutzer Informationen setzen
Konto Informationen
Eigenschaft | Methode | Beschreibung |
---|---|---|
Benutzername | User->setUsername() | |
E-Mail Adresse | User->setEmail() | |
Kennwort | User->setPassword() | |
Frontend Sprache | User->setFrontendLanguage() | Bevorzugte Frontend Sprache (als ID) |
Backend Sprache | User->setBackendLanguage() | Bevorzugte Backend Sprache (als ID) |
Status | User->setActiveStatus() | Definiert ob das Konto (in-)aktiv ist |
Benutzerrolle | User->setAdminStatus() | Definiert ob es sich um einen Administrator handelt |
Profil Informationen
Die Profil Informationen werden mittels der Methode User->setProfile() gesetzt. Dabei muss als Parameter ein zwei Dimensionales Array übergeben werden, welches als Schlüssel die Profileigenschaft und als Wert dessen Eigenschaftswert beinhaltet.
Beispiel:
Benutzerdefinierte Profil Eigenschaften
Benutzerdefinierte Profil Eigenschaften werden gleich wie die normalen Profil Eigenschaften mittels der Methode User->setProfile() gesetzt. Dabei muss als Parameter ein zwei Dimensionales Array übergeben werden, welches als Schlüssel die numerische ID der Benutzerdefinierten Profileigenschaft und als Wert dessen Eigenschaftswert beinhaltet.
Beispiel:
Benutzer Informationen anzeigen
See API reference:
- AccessLib
- AccessLib::setModulePrefix()
- AccessLib::setAttributeNamePrefix()
- AccessLib::parseAttribute()
Autonome Benutzeranmeldung
Verfügbar seit |
---|
3.0.2 |
Mit der Methode \FWUser::loginUser() kann ein Benutzer autonom (ohne Login-Formular) am System angemeldet werden.
Gruppen
Das Objekt \FWUser->objGroup dient als Schnittstelle zum gesamten Benutzerstamm. Dabei stehen die zwei Methoden \FWUser->objGroup->getGroup() und \FWUser->objGroup->getGroups() im Zentrum.
Spezifische Gruppe auswählen
Beispiel:
Gruppen Suchen/Filtern
Beispiel: