import { headers } from "next/headers"; import { auth } from "@/lib/auth"; import { redirect } from "next/navigation"; import Link from "next/link"; import { LogoutButton } from "@/components/layout/logout-button"; import { getSetting } from "@/lib/settings"; import { StopImpersonateBanner } from "@/components/admin/stop-impersonate-banner"; export default async function StudentLayout({ children }: { children: React.ReactNode }) { const session = await auth.api.getSession({ headers: await headers() }); if (!session) redirect("/login"); // Maintenance mode: non-admin users see the maintenance page if (session.user.role !== "admin") { const maintenance = await getSetting("maintenanceMode"); if (maintenance === "true") redirect("/maintenance"); } const [schoolName, logoUrl, showLogo, socialYoutube, socialVk, socialTelegram, orgRequisites] = await Promise.all([ getSetting("schoolName"), getSetting("logoUrl"), getSetting("showLogo"), getSetting("socialYoutube"), getSetting("socialVk"), getSetting("socialTelegram"), getSetting("orgRequisites"), ]); const isImpersonating = !!(session.session as { impersonatedBy?: string }).impersonatedBy; return (