« Zurück zu Produkt

Dokumentation

IPS_UserHasPermission

 bool IPS_UserHasPermission (string $Benutzername, int $ObjektID, string $Operation) 

Parameterliste

Benutzername

Name des Benutzers (case-sensitiv)

ObjektID

ID des zu prüfenden Objekts

Operation

Name der registrierten Operation, z.B. VISUALIZATION

Rückgabewert

Hat der Benutzer die Berechtigung, wird TRUE zurückgegeben, andernfalls FALSE.

Beschreibung

Die Funktion prüft, ob der Benutzer Benutzername die Operation auf dem Objekt ObjektID ausführen darf. Berücksichtigt werden die Berechtigungen des Benutzers selbst sowie die Berechtigungen aller seiner Rollen. Ob der Benutzer aktiv ist, spielt für die Prüfung keine Rolle.

Die Prüfung erfolgt in dieser Reihenfolge: Ist die Operation nicht registriert, schlägt die Funktion mit "Cannot verify unsupported operation" fehl; existiert das Objekt nicht, mit "Object #… does not exist". Der Benutzer @admin hat immer alle Berechtigungen, der Benutzer @unknown nie. Für alle anderen Benutzer gilt: Existiert der Benutzer nicht, schlägt die Funktion mit "User with name '…' does not exist" fehl. Hat der Benutzer die Rolle @admin, wird TRUE geliefert. Andernfalls wird TRUE geliefert, wenn eine Berechtigung des Benutzers selbst oder einer seiner Rollen die Operation für das Objekt gewährt.

Eine rekursive Berechtigung gilt für das Objekt selbst und für alle Objekte darunter im Objektbaum (Kinder, Kindeskinder usw.). Eine rekursive Berechtigung auf das Wurzelobjekt (ID 0) gilt somit für alle Objekte. Eine nicht rekursive Berechtigung gilt ausschließlich für genau dieses Objekt. Links werden dabei nicht verfolgt, maßgeblich ist allein die Position des geprüften Objekts im Objektbaum.

Operationen werden von Modulen registriert. Aktuell registriert die Visualisierung die Operation VISUALIZATION (Zugriff auf eine Visualisierung mit all ihren Objekten), sobald eine Visualisierungsinstanz (z.B. Kachel Visualisierung oder WebFront Visualisierung) vorhanden ist. Geprüft wird sie auf die ID der Visualisierungsinstanz. Der Name der Operation ist case-sensitiv. Ist die Operation nicht registriert, schlägt die Funktion mit "Cannot verify unsupported operation" fehl.

Die Funktion erfordert weder das RBAC-Feature in der Lizenz noch Administratorrechte. Für den aktuell angemeldeten Benutzer kann IPS_HasPermission verwendet werden.

Beispiel

$VisuID = 12345; // ID einer Kachel Visualisierung
IPS_AddPermissionToUser('anna', 0, 'VISUALIZATION', true); // rekursiv ab dem Wurzelobjekt
var_dump(IPS_UserHasPermission('anna', $VisuID, 'VISUALIZATION'));

/* liefert:
bool(true)
*/
Haben Sie noch Fragen?