import type { Metadata } from 'next' import { db } from '@/lib/db' import { requirePermission } from '@/lib/auth/current' import { de } from '@/lib/i18n/de' import { RoleRow } from './RoleRow' import { ClearancePreview } from './ClearancePreview' export const metadata: Metadata = { title: de.roleAdmin.heading } export const dynamic = 'force-dynamic' const ORDER = ['MEMBERSHIP', 'CLEARANCE', 'RANK', 'UNSORTED'] as const export default async function RoleAdminPage() { // Ohne roles.manage gibt es 404, nicht 403. await requirePermission('roles.manage') const [mappings, levels] = await Promise.all([ db.roleMapping.findMany({ orderBy: [{ sortOrder: 'desc' }, { label: 'asc' }] }), db.clearanceLevelConfig.findMany({ orderBy: { level: 'asc' } }), ]) return (

{de.roleAdmin.heading}

{de.roleAdmin.intro}

{mappings.length === 0 ? (

{de.roleAdmin.empty}

) : ( <> ({ label: m.label, clearanceLevel: m.clearanceLevel, }))} /> {ORDER.map((category) => { const rows = mappings.filter((m) => m.category === category) if (rows.length === 0) return null return (

{de.roleAdmin.categories[category]}

{rows.map((role) => ( ({ level: l.level, name: l.name }))} /> ))}
) })} )}
) }