Next.js 15 App Router mit öffentlicher Übersicht und geschütztem Admin-Bereich zur Pflege von Datenschutzerklärungen nach Art. 12ff. DSGVO. - Oberfläche auf Basis von shadcn/ui, Inter lokal eingebunden - Prisma/SQLite, Auth.js mit Credentials-Provider und Rollen - Massenimport der Merkblätter des Amtes Leezen aus PDF - Docker-Image (standalone) und Gitea-Workflow zur Veröffentlichung Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
24 lines
513 B
TypeScript
24 lines
513 B
TypeScript
import { NextResponse } from 'next/server'
|
|
|
|
import { auth } from '@/lib/auth'
|
|
|
|
/**
|
|
* Prüft, ob eine angemeldete Sitzung mit Admin-Rolle vorliegt.
|
|
* Gibt im Fehlerfall die fertige 401-Antwort zurück, sonst `null`.
|
|
*/
|
|
export async function requireAdmin() {
|
|
const session = await auth()
|
|
|
|
if (
|
|
!session ||
|
|
(session.user.role !== 'ADMIN' && session.user.role !== 'SUPER_ADMIN')
|
|
) {
|
|
return NextResponse.json(
|
|
{ error: 'Nicht autorisiert' },
|
|
{ status: 401 }
|
|
)
|
|
}
|
|
|
|
return null
|
|
}
|