Berechtigungen¶
Der Zugriff auf die Benutzer ist - aus Sicherheits- und Datenschutzgründen - eingeschränkt. Die Steuerung des Zugriffs wird über Gruppen gesteuert. Mitglieder einer Gruppe
Legacy¶
Im Legacy-Teil wird der Zugriff auf die Benutzer in der Benutzerliste über die Eigenschaft core.property.myteam
und core.property.myteam_subgroup
gesteuert. In der Eigenschaft core.property.myteam
muss eine Kommaliste der
berechtigten Gruppen stehen. Über die Eigenschaft core.property.myteam_subgroup
kann gesteuert werden, ob auch Untergruppen
einbezogen werden sollen.
Die Umsetzung erfolgt über einen Join der Benutzertabelle. Dieses Verfahren ist sehr teuer und bei großer Datenmenge sehr ineffizient.
Aus diesem Grund besitzt die neue API ein geändertes Verhalten und der Zugriff über core.property.myteam
ist deprecated.
API¶
Das User-Trait besitzt eine Methode User::isIdentityPermitToAccessUserID()
zur Überprüfung
der Berechtigung auf einen Benutzerdatensatz UID
.
\Alvine\Application\Platform\Bridge\Account\User
::isIdentityPermitToAccessUserID(\Alvine\Security\Authentication\Identity $entity,
int $uid): bool
Die Berechtigung, ob ein User Zugriff hat, wird über die Relationstabelle verwaltet.
Hinweis
Werden der Methode mehrere Datensätze übergeben, so ist der Zugriff grundsätzlich nicht erlaubt.
Das User-Modell Alvine\Application\Platform\Model\Account\User
hat das \Alvine\Security\Authorization\Verification
-Interface
und damit die Methode User::isPermit()
implementiert. Darüber erfolgt automatisch die Überprüfung bei Schreib- und Leseanfragen.
Damit ein Benutzer Zugriff auf den Datensatz eines anderen Benutzers erhält, muss ein Eintrag vom Relationstype 50
und dem Objekttyp
120
eingefügt werden. Als Objekt-ID muss die gewünschte Gruppe eingefügt werden.
Hinweis
Wird als Gruppe die Gruppen-ID 1
eingesetz, so hat der Benutzer Zugriff auf alle Benutzer.
Besitzt ein Benutzer die Berechtigung für einen anderen Benutzer-Datensatz so kann er diesen lesen und schreiben. Die Steuerung der Schreibberechtigung muss über die Berechtigung der API gesetzt werden.
Siehe auch die Übersicht zu den (Berechtigungen)[../berechtigungen.md].