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.