import type { Metadata } from 'next' import { db } from '@/lib/db' import { requireUser } from '@/lib/auth/current' import { de } from '@/lib/i18n/de' import { PERMISSIONS } from '@/lib/auth/permissions' import { StampMark } from '@/components/StampMark' export const metadata: Metadata = { title: de.dashboard.access } export const dynamic = 'force-dynamic' /** * Zwischenstand aus TASKS.md Phase 1: zeigt Name, Rollen, errechnete Stufe und * Rechte. Das ist die Seite, an der die Abteilungsleitung nachvollziehen kann, * warum jemand etwas sieht oder eben nicht. */ export default async function OverviewPage() { const user = await requireUser() const [roles, level] = await Promise.all([ db.userRole.findMany({ where: { userId: user.id }, select: { discordRoleId: true }, }), db.clearanceLevelConfig.findUnique({ where: { level: user.permissions.clearanceLevel } }), ]) const mappings = await db.roleMapping.findMany({ where: { discordRoleId: { in: roles.map((r) => r.discordRoleId) } }, orderBy: [{ category: 'asc' }, { sortOrder: 'desc' }], }) const byId = new Map(mappings.map((m) => [m.discordRoleId, m])) const granted = [...user.permissions.permissions].sort() return (

{de.overview.heading}

{de.overview.intro}

{de.overview.person}
{user.displayName}
{de.overview.discordId}
{user.id}
{de.overview.clearance}
{user.permissions.isAdmin ? (

{de.overview.bootstrapAdmin}

) : null}

{de.overview.roles}

{roles.length === 0 ? (

{de.overview.noRoles}

) : ( )}

{de.overview.permissions}

{granted.length === 0 ? (

{de.overview.noPermissions}

) : ( )}
) }