Beide Features auf 132 und 131 deployed (2026-07-07). PROJ-69/PROJ-70 ohne vollständigen Browser-/E2E-Test, nur Smoke-Tests — offene QA-Punkte in den Spec-Dateien dokumentiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.1 KiB
id, title, status, created
| id | title | status | created |
|---|---|---|---|
| PROJ-69 | Admin-Dashboard Tab-Gruppierung (2-Ebenen-Navigation) | Deployed | 2026-07-06 |
Problem
/admin zeigt 17 flache Tabs in einer Zeile (src/app/admin/page.tsx:152-175).
Für superadmin fast alle sichtbar, unübersichtlich, schlecht skalierbar.
Ziel
Zweistufige Navigation: Gruppe → Tab, analog zu bestehenden rollenbasierten
Sichtbarkeitsregeln (isSuperAdmin, canViewDSGVO, etc.). Kein neues
shadcn-Primitive, nur Layout-Umbau.
Gruppen
- Übersicht — Dashboard, Dienste (superadmin)
- Benutzer & Zugriff — Benutzer, LDAP (Global, superadmin), LDAP (Tenant), Mandanten (superadmin)
- Compliance — Audit-Log, DSGVO-Anfragen (canViewDSGVO), Retention (superadmin), Archivierungs-Regeln (superadmin)
- Mail-Eingang — Import, IMAP-Einstellungen, Routing-Regeln, SMTP-Out (superadmin), Quotas (superadmin)
- System — Security (superadmin), Zertifikat (superadmin), Module (superadmin)
Acceptance Criteria
- Gruppen-Leiste über der bestehenden
TabsList(z.B. Button-Segmentleiste oder zweiteTabs-Ebene), Klick auf Gruppe zeigt nur ihre Sub-Tabs. - Eine Gruppe wird nur angezeigt, wenn mindestens ein Tab darin für die aktuelle Rolle sichtbar ist (kein leerer Gruppen-Button).
- Bestehende rollenbasierte Sichtbarkeit pro Tab bleibt unverändert
(
isSuperAdmin,canViewDSGVO,tenantAccessAllowed()-Muster etc.). - Für nicht-superadmin-Rollen (admin, domain_admin, domain_auditor): nur Gruppen mit sichtbaren Tabs erscheinen — z.B. domain_auditor sieht vermutlich nur "Compliance" + evtl. "Benutzer & Zugriff".
- Deep-Link/Reload auf einen Tab (z.B.
?tab=users) bleibt funktionsfähig falls das aktuell schon unterstützt wird (prüfen). - Keine Funktionalität der einzelnen Tabs verändert, nur Navigation/Layout.
- Responsive: Gruppen-Leiste bricht auf Mobile sinnvoll um (analog
.claude/rules/frontend.md— 375px/768px/1440px).
Non-Goals
- Keine neuen Tabs/Features, reine Navigations-Restrukturierung.
- Keine Backend-/API-Änderungen.
Implementation Notes
src/app/admin/page.tsx (Commit 3b2a838): 5 Gruppen (Übersicht, Benutzer &
Zugriff, Compliance, Mail-Eingang, System) als Button-Leiste über der
bestehenden shadcn Tabs. Klick filtert sichtbare TabsTrigger,
TabsContent bleibt unverändert im DOM (Radix matched weiter per value
unabhängig von der Gruppen-Filterung). Rollenbasierte Sichtbarkeit pro Tab
1:1 übernommen, keine Funktionsänderung. npx tsc --noEmit lief sauber.
QA Test Results
Kein Browser-/E2E-Test mit den 3 Rollen durchgeführt (Testuser-Frage blieb
ungeklärt, siehe Memory project_proj69_admin_tabs_status). Deploy auf
User-Anweisung trotzdem durchgeführt (2026-07-07): Frontend-Build auf 131
lief sauber, /admin liefert HTTP 200. Funktionale Prüfung der
Rollen-Filterung steht noch aus.
Deployment
- 2026-07-07, 192.168.1.132 (Test) und 192.168.1.131 (Produktiv), je
update.sh(2 Läufe wegen Self-Update-Timing, siehe PROJ-67/68). Frontend-Build erfolgreich,/adminerreichbar.