Files
archivmail/features/PROJ-69-admin-tabs-gruppierung.md
sysopsandClaude Sonnet 5 28565f089d docs(PROJ-69,PROJ-70): Deployment-Status auf Deployed setzen
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>
2026-07-07 01:26:37 +02:00

75 lines
3.1 KiB
Markdown

---
id: PROJ-69
title: Admin-Dashboard Tab-Gruppierung (2-Ebenen-Navigation)
status: Deployed
created: 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
1. **Übersicht** — Dashboard, Dienste (superadmin)
2. **Benutzer & Zugriff** — Benutzer, LDAP (Global, superadmin), LDAP (Tenant),
Mandanten (superadmin)
3. **Compliance** — Audit-Log, DSGVO-Anfragen (canViewDSGVO), Retention
(superadmin), Archivierungs-Regeln (superadmin)
4. **Mail-Eingang** — Import, IMAP-Einstellungen, Routing-Regeln, SMTP-Out
(superadmin), Quotas (superadmin)
5. **System** — Security (superadmin), Zertifikat (superadmin), Module
(superadmin)
## Acceptance Criteria
- [ ] Gruppen-Leiste über der bestehenden `TabsList` (z.B. Button-Segmentleiste
oder zweite `Tabs`-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, `/admin` erreichbar.