import Link from "next/link"; import { ShieldAlert } from "lucide-react"; import { ROLLEN_TEXT } from "@/lib/rollen-text"; import { sitzungErforderlich } from "@/server/auth/sitzungspflicht"; import { startseite } from "@/server/auth/rollen"; /** * „Dafür fehlt dir die Berechtigung“ — für jemanden, der **angemeldet** ist (#018). * * Vorher schickte `sitzungErforderlich` ihn auf `/anmelden?fehler=keinrecht`, und * die Anmeldeseite leitete einen Angemeldeten sofort auf die Übersicht weiter: * die Erklärung war unerreichbar, er stand ohne Hinweis da und wusste nicht, ob * er sich verklickt hatte oder ob etwas kaputt ist. Der Kommentar in * `sitzungspflicht.ts` versprach „eine Weiterleitung mit Erklärung“ — die * Erklärung fehlte. * * Die Seite sagt deshalb drei Dinge: dass es an der Rolle liegt, welche Rolle er * hat, und wohin er stattdessen kann. Sie nennt **nicht**, welche Rolle nötig * wäre — das ist eine Auskunft über die Rechteverteilung, und wer sie braucht, * fragt den Administrator. */ export default async function KeinZugriffSeite({ searchParams, }: { searchParams: Promise>; }) { const { benutzer } = await sitzungErforderlich(undefined, "/kein-zugriff"); const parameter = await searchParams; const roh = parameter["bereich"]; const bereich = (Array.isArray(roh) ? roh[0] : roh)?.trim(); // Nur eigene Pfade anzeigen: ein fremder Wert in der Adresse waere sonst ein // Text, den jemand anderes auf diese Seite schreibt. const gezeigt = bereich?.startsWith("/") && !bereich.startsWith("//") ? bereich : undefined; const einstieg = startseite(benutzer.rolle); return (
); }