"use client"; import { useEffect, useState } from "react"; import { Table } from "@nexarch/shl"; import type { TableColumn } from "@nexarch/shl"; import { Preference, fetchTenantOverview } from "../../lib/api"; // Akzeptanzkriterium 3: Tenant-Admin sieht eine Übersicht der // Benachrichtigungs-Konfiguration seines Tenants. Zugriffsbeschränkung // (nur Tenant-Admin) ist RBAC-02s Aufgabe vor diesem Endpunkt, siehe // internal/notifyprefs/handler.go. export default function OverviewPage() { const [prefs, setPrefs] = useState(null); const [error, setError] = useState(null); useEffect(() => { fetchTenantOverview() .then(setPrefs) .catch(() => setError("Übersicht konnte nicht geladen werden. Nur Tenant-Admins haben Zugriff.")); }, []); const columns: TableColumn[] = [ { key: "user", header: "Benutzer-ID", render: (p) => p.UserID }, { key: "event", header: "Ereignistyp", render: (p) => p.EventType }, { key: "channel", header: "Kanal", render: (p) => p.Channel }, { key: "enabled", header: "Aktiviert", render: (p) => (p.Enabled ? "Ja" : "Nein") }, ]; return (

Benachrichtigungs-Übersicht (Mandant)

{error &&

{error}

} {prefs && ( `${p.UserID}-${p.EventType}-${p.Channel}`} caption="Von der Standardeinstellung abweichende Benachrichtigungspräferenzen aller Benutzer" /> )} ); }