feat(PROJ-50): Admin-Tab "DSGVO-Anfragen" implementiert
Neuer Tab im Admin-Bereich: Antrags-Liste, Formular (Adresse + Zeitraum), Detail-Dialog mit Mail-Tabelle, PDF-Export und Löschen mit Bestätigung. Rollen-Gating: admin/auditor sehen den Tab, nur admin kann anlegen/löschen. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
0552ce49e2
commit
261a95437c
@@ -35,11 +35,20 @@ import { RetentionTab } from "@/components/admin/tabs/RetentionTab";
|
||||
import { ArchivingRulesTab } from "@/components/admin/tabs/ArchivingRulesTab";
|
||||
import { QuotaTab } from "@/components/admin/tabs/QuotaTab";
|
||||
import { SMTPOutTab } from "@/components/admin/tabs/SMTPOutTab";
|
||||
import { DSGVOTab } from "@/components/admin/tabs/DSGVOTab";
|
||||
import { ResetPasswordDialog, DeleteUserDialog } from "@/components/admin/UserDialogs";
|
||||
|
||||
export default function AdminPage() {
|
||||
const { user, loading: authLoading } = useAuth("domain_admin", "/admin/login");
|
||||
const isSuperAdmin = user?.role === "superadmin";
|
||||
const canManageDSGVO =
|
||||
user?.role === "superadmin" ||
|
||||
user?.role === "domain_admin" ||
|
||||
user?.role === "admin";
|
||||
const canViewDSGVO =
|
||||
canManageDSGVO ||
|
||||
user?.role === "auditor" ||
|
||||
user?.role === "domain_auditor";
|
||||
|
||||
const dashboard = useAdminDashboard(!!user);
|
||||
const usersState = useAdminUsers();
|
||||
@@ -144,6 +153,7 @@ export default function AdminPage() {
|
||||
{isSuperAdmin && <TabsTrigger value="services">Dienste</TabsTrigger>}
|
||||
<TabsTrigger value="users">Benutzer</TabsTrigger>
|
||||
<TabsTrigger value="audit">Audit-Log</TabsTrigger>
|
||||
{canViewDSGVO && <TabsTrigger value="dsgvo">DSGVO-Anfragen</TabsTrigger>}
|
||||
<TabsTrigger value="import">Import</TabsTrigger>
|
||||
{isSuperAdmin && <TabsTrigger value="ldap" onClick={loadLDAP}>LDAP (Global)</TabsTrigger>}
|
||||
{!isSuperAdmin && user?.role === "domain_admin" && (
|
||||
@@ -234,6 +244,12 @@ export default function AdminPage() {
|
||||
/>
|
||||
</TabsContent>
|
||||
|
||||
{canViewDSGVO && (
|
||||
<TabsContent value="dsgvo">
|
||||
<DSGVOTab canManage={canManageDSGVO} />
|
||||
</TabsContent>
|
||||
)}
|
||||
|
||||
<TabsContent value="import">
|
||||
<ImportTab
|
||||
uploadDragging={upload.uploadDragging}
|
||||
|
||||
Reference in New Issue
Block a user