feat(admin): echtes Super-Admin-Benutzer-Management + letzte Anmeldung
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled

- Super-Admin sieht jetzt ALLE Benutzer über alle Mandanten in einer Tabelle
  (statt nur Server-Admins). Neue Spalten: Mandant, Letzte Anmeldung, Status
- Einzelne Benutzer sperren/entsperren: User.isActive (Schema + Auto-Migration),
  Login-Sperre für deaktivierte Konten, PATCH /api/admin/users/[id] { isActive }
- GET /api/admin/users liefert jetzt lastLoginAt + isActive
- Selbstsperre verhindert; admin@lageplan.local geschützt
- Version 1.4.6

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepe Ziberi
2026-07-18 23:15:16 +02:00
parent bae5a36492
commit d08b96a42a
8 changed files with 93 additions and 24 deletions

View File

@@ -15,8 +15,12 @@ Legende Aufwand: 🟢 klein · 🟡 mittel · 🔴 gross
- [x] **0.2 Token-Laufzeit verkürzt** 🟢 ✅
- „Angemeldet bleiben" 30 → 14 Tage. Laufzeiten zentralisiert (`SESSION_MAX_AGE_*` in `auth.ts`).
- _Offen für später: automatische Verlängerung bei Aktivität + serverseitiger Widerruf (grösserer Umbau, braucht Live-Test)._
- [ ] **0.3 Tenant-Admin-UX** 🟡
- Mitglieder einladen / Rolle ändern / deaktivieren. APIs existieren bereits.
- [~] **0.3 Benutzer-/Mandanten-Verwaltung** 🟡 _(Teil 1 erledigt)_
- ✅ Super-Admin sieht jetzt ALLE Benutzer über alle Mandanten in einer Tabelle
(Mandant-Spalte, letzte Anmeldung, Status), kann einzeln sperren/entsperren
(`User.isActive`, Login-Sperre) und Passwort zurücksetzen.
- Offen: die grosse `admin/page.tsx` (1365 Z.) strukturell entwirren (7 Domänen
auf einem Screen) + Rollen-Dualität (User.role vs. Membership.role) vereinheitlichen.
## Phase 1 Einsatz vs. Übung