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.
|
||||
|
||||
**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:**
|
||||
- `screenSlug` — Slug des Screens
|
||||
|
|
@ -552,6 +553,7 @@ oder
|
|||
|
||||
**Fehler:**
|
||||
- `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
|
||||
|
||||
---
|
||||
|
|
@ -561,6 +563,7 @@ oder
|
|||
Speichert den Zeitplan für das automatische Ein-/Ausschalten eines Displays.
|
||||
|
||||
**Auth:** Erforderlich. Screen-Zugriff erforderlich.
|
||||
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||
|
||||
**Path-Parameter:**
|
||||
- `screenSlug` — Slug des Screens
|
||||
|
|
@ -582,6 +585,7 @@ Der Scheduler prüft jede Minute, ob die aktuelle Uhrzeit mit `power_on_time` od
|
|||
|
||||
**Fehler:**
|
||||
- `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
|
||||
- `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.
|
||||
|
||||
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||
|
||||
**Request-Body:**
|
||||
```json
|
||||
{"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:**
|
||||
- `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
|
||||
|
||||
---
|
||||
|
|
@ -632,9 +639,12 @@ Setzt einen globalen Override und sendet sofort MQTT-Befehle an alle Screens.
|
|||
|
||||
Hebt den aktuellen globalen Override auf.
|
||||
|
||||
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||
|
||||
**Response:** `204 No Content`
|
||||
|
||||
**Fehler:**
|
||||
- `403 Forbidden` — Benutzer hat nicht die erforderliche Rolle (restricted-Benutzer dürfen Override nicht löschen)
|
||||
- `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.
|
||||
|
||||
**Auth:** Erforderlich. Screen-Zugriff erforderlich.
|
||||
**Rollen:** Nur `admin_user` und `screen_user`. Benutzer mit Rolle `restricted` erhalten `403 Forbidden`.
|
||||
|
||||
**Path-Parameter:**
|
||||
- `screenSlug` — Slug des Screens
|
||||
|
|
@ -669,6 +680,7 @@ Um den Override zu löschen, `on_until` auf `null` setzen:
|
|||
|
||||
**Fehler:**
|
||||
- `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
|
||||
- `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.
|
||||
|
||||
### 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 /
|
||||
|
||||
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
|
||||
- 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
|
||||
|
||||
- `cmd/api/` — Startpunkt des Backends
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue