import type { Metadata } from 'next' import { requireUser } from '@/lib/auth/current' import { notFound } from 'next/navigation' import { db } from '@/lib/db' import { listDepartments } from '@/lib/departments/service' import { de } from '@/lib/i18n/de' import { DepartmentForm } from './DepartmentForm' export const metadata: Metadata = { title: de.departmentAdmin.heading } export const dynamic = 'force-dynamic' /** * Abteilungen verwalten. * * Angelegt wird hier, zugeordnet in der Personalakte: die Zugehörigkeit ist * eine Angabe über die Person und gehört in ihre Akte, nicht in eine Liste im * Adminbereich. */ export default async function DepartmentAdminPage() { const user = await requireUser() if (!user.permissions.isAdmin && !user.permissions.permissions.has('roles.manage')) { notFound() } const [abteilungen, levels] = await Promise.all([ listDepartments(user.permissions, { includeArchived: true }), db.clearanceLevelConfig.findMany({ orderBy: { level: 'asc' } }), ]) const erlaubteStufen = levels.filter( (level) => user.permissions.isAdmin || level.level <= user.permissions.clearanceLevel, ) return (

{de.departmentAdmin.heading}

{de.departmentAdmin.intro}

{abteilungen.length === 0 ? (

{de.departmentAdmin.empty}

) : ( )}
) }