« Zurück zu Produkt

Dokumentation

IPS_AddPermissionToUser

 bool IPS_AddPermissionToUser (string $Benutzername, int $ObjektID, string $Operation, bool $Rekursiv) 

Parameterliste

Benutzername

Name des Benutzers (case-sensitiv)

ObjektID

ID des Objekts, für das die Berechtigung gilt

Operation

Name der registrierten Operation, z.B. VISUALIZATION

Rekursiv

TRUE, wenn die Berechtigung auch für alle Objekte unterhalb von ObjektID gilt, andernfalls FALSE

Rückgabewert

Konnte die Funktion erfolgreich ausgeführt werden, liefert sie als Ergebnis TRUE, andernfalls FALSE.

Beschreibung

Die Funktion fügt dem Benutzer Benutzername die Berechtigung hinzu, die Operation auf dem Objekt ObjektID auszuführen. Berechtigungen können alternativ über Rollen vergeben werden (siehe IPS_AddPermissionToRole). Der Zugriff auf eine Visualisierung kann auch direkt in deren Instanzkonfiguration unter Sicherheit festgelegt werden.

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.

Warning

Diese Funktion steht nur mit Lizenzen zur Verfügung, die das RBAC-Feature (Berechtigungssteuerung) enthalten. Andernfalls schlägt sie mit "This function is only available for licenses with the RBAC feature enabled!" fehl. Sind mehr Benutzer vorhanden als die Lizenz erlaubt (standardmäßig 10 Benutzer, der Benutzer @admin zählt nicht mit), schlägt sie mit "Your license is currently limited to 10 users. Please consider upgrading the license to more users!" fehl (die Zahl entspricht dem Limit der Lizenz).

Der aktuell angemeldete Benutzer (siehe IPS_GetLoggedInUser) muss Administrator sein, also der Benutzer @admin oder ein Benutzer mit der Rolle @admin. Andernfalls schlägt die Funktion mit "Administrator permissions are required for this action!" fehl.

Weitere Prüfungen in dieser Reihenfolge: Ist die Operation nicht registriert, schlägt die Funktion mit "Cannot verify unsupported operation" fehl. Existiert der Benutzer nicht, schlägt die Funktion mit "User with name '…' does not exist" fehl. Der Benutzer @admin kann nicht verändert werden, der Versuch schlägt mit "User @admin cannot be modified!" fehl. Existiert das Objekt nicht, schlägt sie mit "Object #… does not exist" fehl. Besitzt der Benutzer bereits eine Berechtigung mit identischer ObjektID, Operation und Rekursiv, schlägt sie mit "User already has this permission" fehl. Eine Berechtigung, die sich nur in Rekursiv unterscheidet, gilt als eigener Eintrag.

Siehe auch: IPS_RemovePermissionFromUser, IPS_UserHasPermission

Beispiel

$VisuID = 12345; // ID einer Kachel Visualisierung
IPS_AddPermissionToUser('anna', $VisuID, 'VISUALIZATION', false);
Haben Sie noch Fragen?