import Link from "next/link"; import type { Metadata } from "next"; import { ArrowLeft, ScrollText } from "lucide-react"; import { UserRole } from "@prisma/client"; import { requireRole } from "@/lib/auth-utils"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { getAuditLogRows } from "../_lib/data"; export const metadata: Metadata = { title: "AuditLog · Kita-Planer", }; function formatDate(date: Date) { return new Intl.DateTimeFormat("de-DE", { dateStyle: "medium", timeStyle: "short", }).format(date); } function actionLabel(action: string) { switch (action) { case "KITA_DIAGNOSTIC_VIEW": return "Diagnose geöffnet"; case "KITA_DELETE": return "Kita gelöscht"; case "USER_DELETE": return "Benutzer gelöscht"; case "USER_LOCK": return "Benutzer gesperrt"; case "USER_UNLOCK": return "Benutzer entsperrt"; case "USER_FAILED_LOGIN_RESET": return "Fehlversuche zurückgesetzt"; default: return action; } } function metadataPreview(metadata: unknown) { if (!metadata) return "—"; const preview = JSON.stringify(metadata); if (!preview) return "—"; return preview.length > 140 ? `${preview.slice(0, 140)}...` : preview; } export default async function AuditPage() { await requireRole([UserRole.SUPERADMIN]); const rows = await getAuditLogRows(); return (
Die letzten 200 Superadmin-Diagnose- und Support-Aktionen.