Dokumentation
IPS_RemovePermissionFromRole
bool IPS_RemovePermissionFromRole (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 entfernt die Berechtigung, die Operation auf dem Objekt ObjektID auszuführen, von der Rolle Rolle. ObjektID, Operation und Rekursiv müssen genau mit der beim Hinzufügen über IPS_AddPermissionToRole angegebenen Berechtigung übereinstimmen (siehe IPS_GetRole), ansonsten schlägt die Funktion mit "Role does not have this permission" fehl.
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").
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 nicht mehr öffnen
IPS_RemovePermissionFromRole('Bewohner', 12345, 'VISUALIZATION', false);