Digitalisieren Sie Ihre Schule innerhalb von 15 Minuten!
Richten Sie Homeworker kostenlos und unverbindlich ein.

Permissions / Berechtigungen

In Homeworker werden alle Zugriffsberechtigungen über Permissions gelöst. Hierbei können verschiedensten Zielgruppen (sog. target) eine Freigabe/Berechtigung für einen Inhalt (resource) erteilen.

Um Freigaben verwalten zu können, muss der Benutzer eine Freigabe mit is_admin haben.

Inhalte

Inhalt Feldname API-Endpunkt
Unterrichtsfach lesson_id /api/v2/lessons
Chats chat_id /api/v2/chats
Unterrichtsinhalt lesson_comment_id /api/v2/lesson_contents
Hausaufgaben todo_id /api/v2/todos
(Bald) Schwarzes Brett announcement_id /api/v2/news
(Bald) Dateien file_id /api/v2/files

Zielgruppen

Unter Targets sind alle Zielgruppen mit mit Ihrer Definition gelistet.

Metafelder

Name Typ Editierbar Beschreibung
is_write boolean Ja Angabe ob die Zielgruppe den Inhalt schreiben/ändern darf
is_admin boolean Ja Angabe ob die Zielgruppe den Inhalt verwalten darf (andere Zielgruppen entfernen/hinzufügen)
given_by_user_id int, null Nein ID des Benutzers welcher die Freigabe erteilt hat
given_at string Nein Datetime, wann die freigabe erteilt wurde
target.targets_multiple_users boolean Nein Gibt an ob die ausgewählte Zielgruppe aus mehreren Benutzern bestehen kann

POST /api/v2/permissions

Der Benutzer muss Admin für die hinterlegte Resource sein, damit er Berechtigungen hinzufügen darf.

Anfrage:

{
  "resource_ids": {
    "todo_id": 23
  },
  "target_ids": {
    "user_id": 5
  },
  "is_write": true,
  "is_admin": false
}

Antwort:

{
  "id": 857597,
  "resource_ids": {
    "todo_id": 23
  },
  "target": {
    "ids": {
      "user_id": 5
    },
    "type": "Benutzer",
    "name": "Max Müller",
    "display_name": "Benutzer: Max Müller",
    "image": "https://www.gravatar.com/avatar/226ef2be0bd9b4648f5b8b1758376c9d?s=64&d=mp",
    "targets_multiple_users": false
  },
  "is_write": true,
  "is_admin": false,
  "given_at": "2020-12-17T15:46:44+01:00",
  "given_by_user_id": 46
}

GET /api/v2/permissions

Der Benutzer braucht eine Berechtigung für die Resource, um die Berechtigungen einsehen zu können.

Benötigt eine genauere Angabe einer Resource: Als GET-Parameter können alle IDs der Resourcen verwendet werden. z.B. GET /api/v2/permissions?todo_id=23 um die Berechtigungen für die Hausaufgabe mit der ID 23 abzurufen.

Antwort:

[
  {
    "id": 857597,
    "resource_ids": {
      "todo_id": 23
    },
    "target": {
      "ids": {
        "user_id": 5
      },
      "type": "Benutzer",
      "name": "Max Müller",
      "display_name": "Benutzer: Max Müller",
      "image": "https://www.gravatar.com/avatar/226ef2be0bd9b4648f5b8b1758376c9d?s=64&d=mp",
      "targets_multiple_users": false
    },
    "is_write": true,
    "is_admin": false,
    "given_at": "2020-12-17T15:46:44+01:00",
    "given_by_user_id": 46
  },

  ...truncated
]

GET /api/v2/permissions/:permission_id

Gibt eine bestimmte Berechtigung zurück.

Antwort:

{
  "id": 857597,
  "resource_ids": {
    "todo_id": 23
  },
  "target": {
    "ids": {
      "user_id": 5
    },
    "type": "Benutzer",
    "name": "Max Müller",
    "display_name": "Benutzer: Max Müller",
    "image": "https://www.gravatar.com/avatar/226ef2be0bd9b4648f5b8b1758376c9d?s=64&d=mp",
    "targets_multiple_users": false
  },
  "is_write": true,
  "is_admin": false,
  "given_at": "2020-12-17T15:46:44+01:00",
  "given_by_user_id": 46
}

PUT /api/v2/permissions/:permission_id

Der Benutzer muss Admin für die hinterlegte Resource sein, damit er eine Berechtigung für diese bearbeiten kann.

Anfrage:

{
  "is_write": false,
  "is_admin": true
}

Antwort:

{
  "id": 857597,
  "resource_ids": {
    "todo_id": 23
  },
  "target": {
    "ids": {
      "user_id": 5
    },
    "type": "Benutzer",
    "name": "Max Müller",
    "display_name": "Benutzer: Max Müller",
    "image": "https://www.gravatar.com/avatar/226ef2be0bd9b4648f5b8b1758376c9d?s=64&d=mp",
    "targets_multiple_users": false
  },
  "is_write": false,
  "is_admin": true,
  "given_at": "2020-12-17T15:46:44+01:00",
  "given_by_user_id": 46
}

DELETE /api/v2/permissions/:permission_id

Der Benutzer muss Admin für die hinterlegte Resource sein, damit er eine Berechtigung für diese löschen kann.
Entfernt eine Berechtigung. Wenn die letzte Freigabe mit is_admin entfernt wird, wird die betroffene Resoure auch gelöscht, da diese nicht mehr verwaltet werden kann.