Dokumentation
IPS_AddPermissionToRole
bool IPS_AddPermissionToRole (string $Rolle, int $ObjektID, string $Operation, bool $Rekursiv)
Parameterliste
| Rolle | Name der Rolle |
| ObjektID | ID des Objekts, für das die Berechtigung gilt |
| Operation | Name der Operation, z.B. VISUALIZATION |
| Rekursiv | Gibt an, ob die Berechtigung auch für alle Objekte unterhalb von ObjektID gilt (TRUE) oder nur für das Objekt selbst (FALSE) |
Rückgabewert
Konnte die Funktion erfolgreich ausgeführt werden, liefert sie als Ergebnis TRUE, andernfalls FALSE.
Beschreibung
Die Funktion fügt der Rolle Rolle die Berechtigung hinzu, die Operation auf dem Objekt ObjektID auszuführen. Alle Benutzer, denen die Rolle zugewiesen ist, erhalten damit diese Berechtigung.
Ist Rekursiv aktiviert, gilt die Berechtigung für das Objekt und alle darunterliegenden Objekte – eine rekursive Berechtigung auf das Wurzelobjekt (ID 0) gilt somit für alle Objekte. Eine Berechtigung wird durch ObjektID, Operation und Rekursiv gemeinsam bestimmt; dieselbe ObjektID und Operation kann also einmal rekursiv und einmal nicht rekursiv eingetragen werden.
Als Operation muss eine im System registrierte Operation angegeben werden, ansonsten schlägt die Funktion mit "Cannot verify unsupported operation" fehl. Die Groß-/Kleinschreibung ist dabei zu beachten. Aktuell gibt es die Operation VISUALIZATION (Zugriff auf eine Visualisierung mit all ihren Objekten). Sie wird registriert, sobald eine Visualisierungsinstanz (z.B. Kachel Visualisierung) existiert, und wird auf die ID der Visualisierungsinstanz geprüft.
Die Prüfungen erfolgen in dieser Reihenfolge: Operation, Rolle ("Role with name '…' does not exist"), Objekt ("Object #… does not exist"). Ist dieselbe Berechtigung bereits vorhanden, schlägt die Funktion mit "Role already has this permission" fehl.
Der ausführende Benutzer muss Administrator sein (siehe IPS_IsAdministrator), ansonsten schlägt die Funktion mit "Administrator permissions are required for this action!" fehl.
Die Rollenverwaltung steht nur mit einer Lizenz zur Verfügung, welche das RBAC-Feature enthält. Andernfalls schlägt die Funktion mit "This function is only available for licenses with the RBAC feature enabled!" fehl. Sind mehr Benutzer angelegt, als die Lizenz erlaubt, schlägt die Funktion mit "Your license is currently limited to … users. Please consider upgrading the license to more users!" fehl.
Beispiel
// Die Rolle darf die Visualisierung mit der ID 12345 öffnen
IPS_AddPermissionToRole('Bewohner', 12345, 'VISUALIZATION', false);