syncova-policies/lib/require-admin.ts
Weapie 328f042307 Syncova Policies: Portal für DSGVO-Datenschutzerklärungen
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>
2026-09-07 16:23:51 +02:00

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
}