Erlaubte Rollen, Benutzer und Gruppen¶
Der @allowed-roles-and-principals
Endpoint (aufrufbar auf jedem Kontext)
gibt die Information zurück, welche Rollen, Gruppen oder Benutzer
das Objekt ansehen dürfen (die Lese-Berechtigung haben).
Bemerkung
Der Begriff “principal” steht für “Benutzer oder Gruppe”
Umgekehrt ist in der Response des /@users/<user_id>
Endpoints die
Information enthalten, welche “roles and principals” der User
tatsächlich hat (welche globalen Rollen er hat, in welchen Gruppen er ist,
und welches seine Benutzer-ID ist).
Mit diesen beiden Information über ein Objekt und den Benutzer kann ein externes System selbstständig die Frage beantworten, ob ein Benutzer auf ein bestimmtes Objekt in GEVER Lese-Berechtigung haben wird (unter der Voraussetzung, dass das externe System diese Informationen zu geeigneten Zeitpunkten aktualisiert).
Wenn ein oder mehrere Strings aus der Liste der tatsächlichen
roles_and_principals
des Users in der Liste der
allowed_roles_and_principals
vorkommt, hat der Benutzer die
Lese-Berechtigung.
Auslesen der “allowed roles and principals” eines Objekts (GET)¶
Benötigte Berechtigung: opengever.api.ViewAllowedRolesAndPrincipals
(standardmässig
der Rolle ServiceKeyUser zugewiesen).
-
GET
/
(path)/@allowed-roles-and-principals
¶ Gibt die “allowed roles and principals” auf dem entsprechenden Kontext zurück.
Request:
GET /dossier-15/@allowed-roles-and-principals HTTP/1.1 Accept: application/json
Response:
HTTP/1.1 200 OK Content-Type: application/json { "@id": "http://demo.onegovgever.ch/dossier-15/@allowed-roles-and-principals", "allowed_roles_and_principals": [ "Administrator", "principal:og_demo_examplegroup", "principal:john.doe", "Manager", "Editor", "Reader", "Contributor", "_View_Permission" ] }
Der @allowed-roles-and-principals
Endpoint gibt (im
Property allowed_roles_and_principals
) eine Liste von Strings zurück, die
angibt welche Rollen, Gruppen oder Benutzer das Objekt ansehen dürfen
(Lese-Berechtigung haben).
Die Bedeutung dieser Liste ist wie folgt:
Mit
principal:
präfixte Strings sind User-IDs oder Gruppen-IDsNicht präfixte Strings sind Rollen-IDs
Wenn mindestens eine der
- Globalen Rollen des Benutzers
- Gruppen des Benutzers
- oder die User-ID des Benutzers
in dieser Liste vorkommt, hat der Benutzer die Berechtigung, das Objekt zu lesen - sonst nicht.
In diesem Beispiel ist og_demo_examplegroup
eine Gruppe, john.doe
ist
ein User, und die restlichen Einträge sind Rollen.
Auslesen der “roles and principals” eines Users (GET)¶
-
GET
/@users/
(user_id)¶ Gibt die Informationen zum entsprechenden Benutzer aus.
Request:
GET /@users/john.doe HTTP/1.1 Accept: application/json
Response:
HTTP/1.1 200 OK Content-Type: application/json { "@id": "http://demo.onegovgever.ch/@users/john.doe", "description": null, "email": "john.doe@example.org", "fullname": "Doe John", "home_page": null, "id": "john.doe", "location": null, "portrait": null, "roles": [ "Member", "WorkspacesUser", "WorkspacesCreator" ], "roles_and_principals": [ "principal:john.doe", "Member", "WorkspacesUser", "WorkspacesCreator", "Authenticated", "principal:og_demo_examplegroup", "Anonymous" ], "username": "john.doe" }
Im Property roles_and_principals
sind die tatsächlichen
“roles and principals” des Users ersichtlich. Auch hier sind die mit principal:
präfixten Einträge entweder Gruppen oder User, die anderen sind Rollen.