Zum Inhalt

Benutzer & Rollen

Die Benutzerverwaltung (/users) ist das Herzstück des Admin-Backends. Hier werden alle Endnutzer angelegt, konfiguriert und überwacht.

Benutzer-Tabelle

Die Übersicht zeigt alle registrierten User mit:

  • Benutzername und Anzeigename
  • E-Mail-Adresse
  • Rolle (farbiger Badge)
  • Status (Aktiv / Gesperrt)
  • Erstellungsdatum
  • Aktionen: Bearbeiten, Sperren/Aktivieren, Impersonieren, Löschen

Rollen

Rolle Beschreibung Besonderheiten
user Standard-Endnutzer Kann Dashboard, Billing, Keys nutzen
subscriber Abonnent Kann zugewiesene Expert-Templates verwenden
expert Experte Kann eigene Templates und CC-Profile erstellen
admin Administrator Vollzugriff auf alle Funktionen

Rollen-Vergabe

Die Rolle eines Users kann im Edit-Dialog (Tab Budget) oben links per Dropdown geändert werden. Eine Rollenänderung wird sofort gespeichert.

User anlegen

Über den Button + Benutzer anlegen öffnet sich ein Modal mit:

Feld Pflicht Beschreibung
Benutzername Eindeutiger Loginname (a-z, 0-9, -, _)
E-Mail Für Passwort-Reset und Budget-Alerts
Anzeigename Freundlicher Name für die UI
Passwort Mindestens 8 Zeichen
Rolle Initiale Rolle (Standard: user)
Tägliches Limit Token-Budget pro Tag
Monatliches Limit Token-Budget pro Monat
Gesamt-Limit Lebenszeitbudget

Nach dem Anlegen kann optional eine Willkommens-E-Mail mit den Zugangsdaten versendet werden (erfordert SMTP-Konfiguration).

User bearbeiten – Edit-Dialog

Ein Klick auf einen User öffnet das Edit-Modal mit vier Tabs:

Tab: Budget

Enthält oben den Rollen-Selektor und den Sperr-/Aktivier-Button.

Felder:

Feld Beschreibung
Tägliches Limit Max. Tokens pro Tag (leer = unlimitiert)
Monatliches Limit Max. Tokens pro Monat (leer = unlimitiert)
Gesamt-Limit Kumulatives Lifetime-Limit (leer = unlimitiert)
Budget-Typ Abo (monatlicher Reset) oder Einmalig (kein Reset)

Aktueller Verbrauch wird direkt darunter angezeigt (Heute / Monat / Gesamt mit EUR-Schätzung).

Tab: Freigaben

Hier werden die expliziten Ressourcen-Freigaben des Users verwaltet. Siehe Freigaben (Permissions) für Details.

Tab: API Keys

Zeigt alle API-Keys des Users mit:

  • Prefix (erste 16 Zeichen des Keys)
  • Label (vom User vergeben)
  • Zuletzt genutzt
  • Status (Aktiv / Gesperrt)
  • Sperren-Button

Neue Keys können hier direkt vom Admin erstellt werden. Der vollständige Key wird einmalig angezeigt.

Tab: Verbrauch

Statistik-Karten: - Tokens heute / diesen Monat / gesamt - Download-Link für detaillierte JSON-Daten (letzte 30 Tage)

User sperren / aktivieren

  • Sperren: Setzt is_active = 0, invalidiert den Redis-Cache sofort.
  • Aktivieren: Setzt is_active = 1, User kann sich sofort wieder anmelden.

Gesperrte User

Gesperrte User können sich nicht mehr anmelden und ihre API-Keys werden abgewiesen. Bestehende Sessions laufen aus.

Admin-Impersonation

Über den Impersonate-Button (Augen-Symbol) kann ein Admin die Sitzung eines Users übernehmen:

  1. Admin klickt Impersonate → wird zu /admin/users/{uid}/impersonate weitergeleitet
  2. Das User-Portal öffnet sich mit einem orangenen Hinweis-Banner: „Sie sind als [Username] eingeloggt (Admin-Impersonation)"
  3. Beenden: Klick auf Impersonation beenden → zurück zum Admin-Account

Passwort-Reset durch Admin

Im Edit-Dialog kann ein Admin das Passwort eines Users direkt zurücksetzen, ohne den E-Mail-Flow zu durchlaufen.

Datenbankfelder

CREATE TABLE users (
    id            TEXT PRIMARY KEY,    -- UUID4 hex
    username      TEXT UNIQUE NOT NULL,
    email         TEXT UNIQUE,
    display_name  TEXT,
    hashed_password TEXT,              -- bcrypt via passlib
    is_active     INTEGER DEFAULT 1,  -- 1=aktiv, 0=gesperrt
    is_admin      INTEGER DEFAULT 0,
    role          TEXT DEFAULT 'user',
    created_at    TEXT NOT NULL,       -- ISO-8601 UTC
    updated_at    TEXT NOT NULL,
    alert_enabled        INTEGER DEFAULT 0,
    alert_threshold_pct  INTEGER DEFAULT 80,
    alert_email          TEXT,
    last_alert_sent_at   TEXT,
    timezone_offset_hours REAL DEFAULT 0
);

Standard-Admin

Beim ersten Start wird automatisch ein Admin-Account angelegt:

Feld Standardwert Env-Variable
Benutzername admin ADMIN_USER
Passwort changeme ADMIN_PASSWORD

Wichtig

Das Standard-Passwort muss beim ersten Login geändert werden.