docs: restricted-Rolle in API-Endpoints und README dokumentiert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c943df4663
commit
f70ebddad2
2 changed files with 30 additions and 0 deletions
|
|
@ -535,6 +535,7 @@ Beide Endpunkte erfordern `RequireAuth` + `RequireScreenAccess` (`authScreen`-Mi
|
||||||
Sendet einen MQTT-Befehl zum Ein- oder Ausschalten des physischen Displays.
|
Sendet einen MQTT-Befehl zum Ein- oder Ausschalten des physischen Displays.
|
||||||
|
|
||||||
**Auth:** Erforderlich (Bearer-Token oder Session-Cookie). Screen-Zugriff erforderlich.
|
**Auth:** Erforderlich (Bearer-Token oder Session-Cookie). Screen-Zugriff erforderlich.
|
||||||
|
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||||
|
|
||||||
**Path-Parameter:**
|
**Path-Parameter:**
|
||||||
- `screenSlug` — Slug des Screens
|
- `screenSlug` — Slug des Screens
|
||||||
|
|
@ -552,6 +553,7 @@ oder
|
||||||
|
|
||||||
**Fehler:**
|
**Fehler:**
|
||||||
- `400 Bad Request` — `state` ist nicht `"on"` oder `"off"`, oder ungültiges JSON
|
- `400 Bad Request` — `state` ist nicht `"on"` oder `"off"`, oder ungültiges JSON
|
||||||
|
- `403 Forbidden` — Benutzer hat nicht die erforderliche Rolle (restricted-Benutzer dürfen Display nicht steuern)
|
||||||
- `502 Bad Gateway` — MQTT-Publish fehlgeschlagen
|
- `502 Bad Gateway` — MQTT-Publish fehlgeschlagen
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -561,6 +563,7 @@ oder
|
||||||
Speichert den Zeitplan für das automatische Ein-/Ausschalten eines Displays.
|
Speichert den Zeitplan für das automatische Ein-/Ausschalten eines Displays.
|
||||||
|
|
||||||
**Auth:** Erforderlich. Screen-Zugriff erforderlich.
|
**Auth:** Erforderlich. Screen-Zugriff erforderlich.
|
||||||
|
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||||
|
|
||||||
**Path-Parameter:**
|
**Path-Parameter:**
|
||||||
- `screenSlug` — Slug des Screens
|
- `screenSlug` — Slug des Screens
|
||||||
|
|
@ -582,6 +585,7 @@ Der Scheduler prüft jede Minute, ob die aktuelle Uhrzeit mit `power_on_time` od
|
||||||
|
|
||||||
**Fehler:**
|
**Fehler:**
|
||||||
- `400 Bad Request` — Zeitformat ungültig (nicht `HH:MM`), oder ungültiges JSON
|
- `400 Bad Request` — Zeitformat ungültig (nicht `HH:MM`), oder ungültiges JSON
|
||||||
|
- `403 Forbidden` — Benutzer hat nicht die erforderliche Rolle (restricted-Benutzer dürfen Zeitplan nicht ändern)
|
||||||
- `404 Not Found` — Screen nicht vorhanden
|
- `404 Not Found` — Screen nicht vorhanden
|
||||||
- `500 Internal Server Error` — DB-Fehler
|
- `500 Internal Server Error` — DB-Fehler
|
||||||
|
|
||||||
|
|
@ -612,6 +616,8 @@ Ruft den aktuell aktiven globalen Override ab.
|
||||||
|
|
||||||
Setzt einen globalen Override und sendet sofort MQTT-Befehle an alle Screens.
|
Setzt einen globalen Override und sendet sofort MQTT-Befehle an alle Screens.
|
||||||
|
|
||||||
|
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||||
|
|
||||||
**Request-Body:**
|
**Request-Body:**
|
||||||
```json
|
```json
|
||||||
{"type":"off","until":"2026-04-05T18:00:00+02:00"}
|
{"type":"off","until":"2026-04-05T18:00:00+02:00"}
|
||||||
|
|
@ -624,6 +630,7 @@ Setzt einen globalen Override und sendet sofort MQTT-Befehle an alle Screens.
|
||||||
|
|
||||||
**Fehler:**
|
**Fehler:**
|
||||||
- `400 Bad Request` — `type` nicht "on"/"off", oder ungültiges Zeitformat
|
- `400 Bad Request` — `type` nicht "on"/"off", oder ungültiges Zeitformat
|
||||||
|
- `403 Forbidden` — Benutzer hat nicht die erforderliche Rolle (restricted-Benutzer dürfen Override nicht setzen)
|
||||||
- `500 Internal Server Error` — DB-Fehler
|
- `500 Internal Server Error` — DB-Fehler
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -632,9 +639,12 @@ Setzt einen globalen Override und sendet sofort MQTT-Befehle an alle Screens.
|
||||||
|
|
||||||
Hebt den aktuellen globalen Override auf.
|
Hebt den aktuellen globalen Override auf.
|
||||||
|
|
||||||
|
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||||
|
|
||||||
**Response:** `204 No Content`
|
**Response:** `204 No Content`
|
||||||
|
|
||||||
**Fehler:**
|
**Fehler:**
|
||||||
|
- `403 Forbidden` — Benutzer hat nicht die erforderliche Rolle (restricted-Benutzer dürfen Override nicht löschen)
|
||||||
- `500 Internal Server Error` — DB-Fehler
|
- `500 Internal Server Error` — DB-Fehler
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -651,6 +661,7 @@ Setzt oder löscht den per-Screen "Einschalten bis"-Override. Mit diesem Overrid
|
||||||
dem angegebenen Zeitpunkt eingeschaltet, selbst wenn der globale Schedule "aus" vorsieht.
|
dem angegebenen Zeitpunkt eingeschaltet, selbst wenn der globale Schedule "aus" vorsieht.
|
||||||
|
|
||||||
**Auth:** Erforderlich. Screen-Zugriff erforderlich.
|
**Auth:** Erforderlich. Screen-Zugriff erforderlich.
|
||||||
|
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||||
|
|
||||||
**Path-Parameter:**
|
**Path-Parameter:**
|
||||||
- `screenSlug` — Slug des Screens
|
- `screenSlug` — Slug des Screens
|
||||||
|
|
@ -669,6 +680,7 @@ Um den Override zu löschen, `on_until` auf `null` setzen:
|
||||||
|
|
||||||
**Fehler:**
|
**Fehler:**
|
||||||
- `400 Bad Request` — Ungültiges Zeitformat oder ungültiges JSON
|
- `400 Bad Request` — Ungültiges Zeitformat oder ungültiges JSON
|
||||||
|
- `403 Forbidden` — Benutzer hat nicht die erforderliche Rolle (restricted-Benutzer dürfen Override nicht setzen)
|
||||||
- `404 Not Found` — Screen nicht vorhanden
|
- `404 Not Found` — Screen nicht vorhanden
|
||||||
- `500 Internal Server Error` — DB-Fehler
|
- `500 Internal Server Error` — DB-Fehler
|
||||||
|
|
||||||
|
|
@ -686,6 +698,17 @@ Spezialendpoint zur Auflösung von Nachrichten-Wand-Anfragen (noch in Entwicklun
|
||||||
|
|
||||||
Alle Auth-Routen erfordern keine vorherige Authentifizierung.
|
Alle Auth-Routen erfordern keine vorherige Authentifizierung.
|
||||||
|
|
||||||
|
### Benutzerrollen
|
||||||
|
|
||||||
|
Das System unterscheidet folgende Rollen:
|
||||||
|
|
||||||
|
- `admin_user` — Volller Zugriff auf alle Funktionen, inkl. Benutzerverwaltung und Display-Steuerung
|
||||||
|
- `screen_user` — Darf Medien hochladen, Playlists bearbeiten und Displays steuern (An/Aus, Zeitplan, Override)
|
||||||
|
- `restricted` — Darf Medien hochladen und Playlist bearbeiten. Keine Display-Steuerung (An/Aus, Zeitplan, Override). Betroffene Endpunkte antworten mit 403 Forbidden.
|
||||||
|
- `tenant_user` — Tenant-Operator für Self-Service-Dashboard (Medienupload, Tenantmenü)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### GET /
|
### GET /
|
||||||
|
|
||||||
Root-Redirect auf `/login`.
|
Root-Redirect auf `/login`.
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,13 @@ Dieses Verzeichnis enthaelt das zentrale Go-Backend fuer das Info-Board-System.
|
||||||
- Player-Status-Ingest und Diagnose
|
- Player-Status-Ingest und Diagnose
|
||||||
- MQTT-Notifizierungen bei Playlist-Aenderungen
|
- MQTT-Notifizierungen bei Playlist-Aenderungen
|
||||||
|
|
||||||
|
## Benutzerrollen
|
||||||
|
|
||||||
|
- `admin_user` — Volller Zugriff auf alle Funktionen
|
||||||
|
- `screen_user` — Darf Medien hochladen und Playlist bearbeiten. Display-Steuerung (An/Aus, Zeitplan, Override)
|
||||||
|
- `restricted` — Darf Medien hochladen und Playlist bearbeiten. Keine Display-Steuerung.
|
||||||
|
- `tenant_user` — Tenant-Operator für Self-Service-Dashboard
|
||||||
|
|
||||||
## Unterstruktur
|
## Unterstruktur
|
||||||
|
|
||||||
- `cmd/api/` — Startpunkt des Backends
|
- `cmd/api/` — Startpunkt des Backends
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue