feat(PROJ-21): Phase 6+7 abschliessen — Dienste-Tab nur superadmin

Frontend: Dienste-Tab (Systemdienste starten/stoppen) ist jetzt nur
noch für superadmin sichtbar. domain_admin sieht: Dashboard, Benutzer,
Audit-Log, Import, LDAP (eigener Mandant).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-03-18 01:18:28 +01:00
parent 372eee7aef
commit bd09992441
3 changed files with 14 additions and 6 deletions
+4 -3
View File
@@ -33,11 +33,12 @@
| PROJ-18 | E-Mail Integritätsprüfung | Deployed | [PROJ-18](PROJ-18-integritaetspruefung.md) | 2026-03-14 | | PROJ-18 | E-Mail Integritätsprüfung | Deployed | [PROJ-18](PROJ-18-integritaetspruefung.md) | 2026-03-14 |
| PROJ-19 | Mailpiler → archivmail Migrationstool | Deployed | [PROJ-19](PROJ-19-import-piler.md) | 2026-03-17 | | PROJ-19 | Mailpiler → archivmail Migrationstool | Deployed | [PROJ-19](PROJ-19-import-piler.md) | 2026-03-17 |
| PROJ-20 | Nutzer-Löschung & E-Mail-Verbleib (GoBD-konform) | Deployed | [PROJ-20](PROJ-20-nutzer-loeschung.md) | 2026-03-17 | | PROJ-20 | Nutzer-Löschung & E-Mail-Verbleib (GoBD-konform) | Deployed | [PROJ-20](PROJ-20-nutzer-loeschung.md) | 2026-03-17 |
| PROJ-21 | Multi-Mandanten-Fähigkeit (Multi-Tenancy) | In Progress | [PROJ-21](PROJ-21-multi-tenancy.md) | 2026-03-17 | | PROJ-21 | Multi-Mandanten-Fähigkeit (Multi-Tenancy) | Deployed | [PROJ-21](PROJ-21-multi-tenancy.md) | 2026-03-17 |
| PROJ-22 | LDAP / AD Web-GUI Konfiguration & Test | Deployed | [PROJ-22](PROJ-22-ldap-webgui.md) | 2026-03-17 | | PROJ-22 | LDAP / AD Web-GUI Konfiguration & Test | Deployed | [PROJ-22](PROJ-22-ldap-webgui.md) | 2026-03-17 |
| PROJ-23 | Pro-Mandant LDAP / Active Directory (Multi-Tenant Phase B) | In Progress | [PROJ-23](PROJ-23-tenant-ldap-pro-mandant.md) | 2026-03-17 | | PROJ-23 | Pro-Mandant LDAP / Active Directory (Multi-Tenant Phase B) | In Progress | [PROJ-23](PROJ-23-tenant-ldap-pro-mandant.md) | 2026-03-17 |
| PROJ-24 | TOTP Zwei-Faktor-Authentifizierung (2FA) | Planned | [PROJ-24](PROJ-24-totp-zwei-faktor.md) | 2026-03-18 | | PROJ-24 | TOTP Zwei-Faktor-Authentifizierung (2FA) | Deployed | [PROJ-24](PROJ-24-totp-zwei-faktor.md) | 2026-03-18 |
| PROJ-25 | User-Profil & Einstellungen | Deployed | [PROJ-25](PROJ-25-user-profil-einstellungen.md) | 2026-03-18 |
<!-- Add features above this line --> <!-- Add features above this line -->
## Next Available ID: PROJ-25 ## Next Available ID: PROJ-26
+9 -2
View File
@@ -1,7 +1,7 @@
--- ---
id: PROJ-21 id: PROJ-21
title: Multi-Mandanten-Fähigkeit (Multi-Tenancy) title: Multi-Mandanten-Fähigkeit (Multi-Tenancy)
status: In Progress status: Deployed
created: 2026-03-17 created: 2026-03-17
--- ---
@@ -39,7 +39,14 @@ created: 2026-03-17
- `internal/imap/importer.go`, `internal/pop3/importer.go``TenantID *int64` Feld + `Save(ctx, ..., tenantID)` - `internal/imap/importer.go`, `internal/pop3/importer.go``TenantID *int64` Feld + `Save(ctx, ..., tenantID)`
- `cmd/archivmail/cmd_import.go`, `cmd/archivmail-import/main.go``Save(ctx, ..., nil)` - `cmd/archivmail/cmd_import.go`, `cmd/archivmail-import/main.go``Save(ctx, ..., nil)`
**Offene Phasen:** Phase 4 (Xapian per-tenant Index-Filter) **Phase 4 implementiert + QA-approved (2026-03-18)**
**Phase 6+7 implementiert (2026-03-18):**
- Tenant-Management-Routen (Phase 1 bereits enthalten)
- `/api/tenant/ldap` Routen via PROJ-23
- Frontend: Dienste-Tab nur für superadmin sichtbar
- Frontend: Security/Tenants/Modules/LDAP-Global nur für superadmin
- Frontend: domain_admin sieht nur eigene Nutzer/Audit/LDAP-Tab
## Phase 4 -- QA-Bericht (2026-03-18, Code-Review) ## Phase 4 -- QA-Bericht (2026-03-18, Code-Review)
+1 -1
View File
@@ -722,7 +722,7 @@ export default function AdminPage() {
<Tabs defaultValue="dashboard"> <Tabs defaultValue="dashboard">
<TabsList> <TabsList>
<TabsTrigger value="dashboard">Dashboard</TabsTrigger> <TabsTrigger value="dashboard">Dashboard</TabsTrigger>
<TabsTrigger value="services">Dienste</TabsTrigger> {isSuperAdmin && <TabsTrigger value="services">Dienste</TabsTrigger>}
<TabsTrigger value="users">Benutzer</TabsTrigger> <TabsTrigger value="users">Benutzer</TabsTrigger>
<TabsTrigger value="audit">Audit-Log</TabsTrigger> <TabsTrigger value="audit">Audit-Log</TabsTrigger>
<TabsTrigger value="import">Import</TabsTrigger> <TabsTrigger value="import">Import</TabsTrigger>