« Zurück zu Produkt

Dokumentation

IPS_HasPermission

 bool IPS_HasPermission (int $ObjektID, string $Operation) 

Parameterliste

ObjektID

ID des zu prüfenden Objekts

Operation

Name der registrierten Operation, z.B. VISUALIZATION

Rückgabewert

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

Beschreibung

Die Funktion prüft, ob der Benutzer, in dessen Kontext die aktuelle Ausführung läuft (siehe IPS_GetLoggedInUser), die Operation auf dem Objekt ObjektID ausführen darf. Berücksichtigt werden die Berechtigungen des Benutzers selbst sowie die Berechtigungen aller seiner Rollen. Sie entspricht IPS_UserHasPermission für den aktuellen Benutzer.

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 kein RBAC-Feature in der Lizenz.

Beispiel

$VisuID = 12345; // ID einer Kachel Visualisierung
if (IPS_HasPermission($VisuID, 'VISUALIZATION')) {
    echo 'Zugriff erlaubt';
}
Haben Sie noch Fragen?