Files
Speisekarte/app/admin/layout.tsx
T
florian.wilde 2a62d07dc4 Navigation: gemeinsamer Kopfbereich statt getrennter Bereiche
Eine Leiste für alles: Gruppe "Speiseplan" (Wochenplan, Gerichte,
Allergene & Zusatzstoffe) und für Admins zusätzlich Gruppe
"Verwaltung" (Benutzer, Design). Aktiver Menüpunkt wird hervorgehoben,
die Konto-Seite nutzt denselben Header – kein Hin- und Herspringen
mehr zwischen Kantinen-Bereich und Verwaltung.
2026-07-17 23:53:11 +02:00

35 lines
857 B
TypeScript

import { redirect } from "next/navigation";
import { createClient } from "@/lib/supabase/server";
import AppHeader from "@/components/AppHeader";
export default async function AdminLayout({
children,
}: {
children: React.ReactNode;
}) {
const supabase = await createClient();
const {
data: { user },
} = await supabase.auth.getUser();
if (!user) redirect("/login");
const { data: profile } = await supabase
.from("profiles")
.select("role, full_name")
.eq("id", user.id)
.single();
if (profile?.role !== "admin") redirect("/intern");
return (
<div className="flex-1 flex flex-col">
<AppHeader
role="admin"
displayName={profile.full_name || user.email || ""}
/>
<main className="max-w-[1600px] mx-auto w-full px-4 py-6 flex-1">
{children}
</main>
</div>
);
}