Berechtigungsreports¶
Der @role-assignment-reports
bietet Funktionen für die Auflistung, das Erstellen und das Löschen von Berechtigungsreports. Der Endpoint steht nur auf Stufe PloneSite zur Verfügung und ist mit einer Berechtigung geschützt: opengever.api.ManageRoleAssignmentReports
Die Berechtigung ist standardmässig den Rollen Administrator und Manager zugewiesen.
Auflistung¶
Mittels eines GET-Requests können alle Berichte abgefragt werden.
Beispiel-Request:
GET /@role-assignment-reports HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "items": [ { "@id": "http://localhost:8080/fd/@role-assignment-reports/report_2", "modified": "2020-07-08T14:17:30+00:00", "principal_type": "user", "principal_id": "robert.ziegler", "report_id": "report_2", "state": "in progress" }, { "@id": "http://localhost:8080/fd/@role-assignment-reports/report_1", "modified": "2020-04-03T01:34:27+00:00", "principal_type": "group", "principal_id": "afi_benutzer", "report_id": "report_1", "state": "ready" } ], "items_total": 2 }
Mittels eines GET-Requests können auch einzelne Berichte abgefragt werden.
Beispiel-Request:
GET /@role-assignment-reports/report_1 HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "@id": "http://localhost:8080/fd/@role-assignment-reports/report_1", "referenced_roles": [ { "id": "Contributor", "title": "Hinzufügen" }, { "id": "Reviewer", "title": "Veröffentlichen" }, { "id": "Editor", "title": "Bearbeiten" }, { "id": "Reader", "title": "Ansehen" } ], "items": [ { "UID": "ea02348a43fd4c9ebcf86f0a1f739923", "roles": [ "Editor" ], "url": "http://localhost:8080/fd/ordnungssystem/bevoelkerung-und-sicherheit/einwohnerkontrolle/dossier-1/dossier-2", "title": "Aktuelle Situation" }, { "UID": "63bf84e9e07b4702abaf3bd78ca45326", "roles": [ "Contributor", "Reader" ], "url": "http://localhost:8080/fd/ordnungssystem/fuehrung/interne-organisation/planung-und-organisatorisches/dossier-3", "title": "Wichtige Information" }, { "UID": "3761453132dc4ced9b0a758c3b978802", "roles": [ "Contributor", "Reviewer", "Editor" ], "url": "http://localhost:8080/fd/ordnungssystem/bevoelkerung-und-sicherheit/einbuergerungen", "title": "Einbürgerungen" } ], "items_total": 3, "modified": "2020-04-03T01:34:27+00:00", "principal_type": "group", "principal_id": "afi_benutzer", "report_id": "report_1", "state": "ready" }
Bericht erstellen¶
Ein Bericht kann mittels POST-Requests angefordert werden. Danach erscheint der Bericht im Status in progress
. In einem Nightly-Job werden die Rollenzuweisungen zusammengetragen und der Bericht damit ergänzt. Sobald dies erledigt ist, wird der Status auf ready
gesetzt. Berichte können für Benutzer und für Gruppen angefordert werden.
Beispiel-Request:
POST /@role-assignment-reports HTTP/1.1 Accept: application/json { "principal_id": "robert.ziegler" }
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "@id": "http://localhost:8080/fd/@role-assignment-reports/report_7", "items": [], "items_total": 0, "modified": "2020-07-13T11:43:18+00:00", "principal_type": "user", "principal_id": "robert.ziegler", "report_id": "report_7", "state": "in progress" }
Bericht löschen¶
Mittels DELETE-Requests kann ein Bericht gelöscht werden.
Beispiel-Request:
DELETE /@role-assignment-reports/report_0 HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 204 No content
Paginierung¶
Die Paginierung funktioniert gleich wie bei anderen Auflistungen auch (siehe Kapitel Paginierung).