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).