refactor(admin): 1365-Zeilen-Seite in saubere Bereichs-Komponenten entwirrt
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 30m12s

- admin/page.tsx: 1365 -> 224 Zeilen (nur noch Guard + Header + Tabs -> Komponenten)
- Neue in sich geschlossene Komponenten (eigener State + Daten-Laden):
  tenants-tab, users-tab, projects-tab, icons-tab, categories-tab
- Gemeinsame Typen/Konstanten in admin-constants.ts zentralisiert
- SettingsTab lädt Zähler selbst (von der Hülle entkoppelt)
- Toten Code entfernt (UpgradeRequestsTab)
- Ergänzt: Benutzer-Suche + Mandanten-Auswahl beim Anlegen (verhindert verwaiste User)
- Version 1.4.7

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepe Ziberi
2026-07-18 23:31:17 +02:00
parent d08b96a42a
commit a081b3ebe4
10 changed files with 1115 additions and 1323 deletions

View File

@@ -15,12 +15,13 @@ 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 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.
- [x] **0.3 Benutzer-/Mandanten-Verwaltung** 🟡
- Super-Admin sieht ALLE Benutzer über alle Mandanten (Mandant-Spalte, letzte
Anmeldung, Status), sperren/entsperren (`User.isActive`), Passwort-Reset, **Suche**.
- **Anlegen mit Mandanten-Auswahl** (verhindert verwaiste User).
- `admin/page.tsx` von 1365 → ~230 Zeilen entwirrt: je Bereich eine eigene
Komponente (tenants/users/projects/icons/categories-tab), toter Code entfernt.
- Offen (später): Rollen-Dualität (User.role vs. Membership.role) vereinheitlichen.
## Phase 1 Einsatz vs. Übung