import { redirect } from 'next/navigation' import { cookies } from 'next/headers' import { getIronSession } from 'iron-session' import { SessionData, sessionOptions } from '@/lib/session' import { prisma } from '@/lib/prisma' import { NavBar } from '@/components/shared/nav-bar' import { MinWidthBanner } from '@/components/shared/min-width-banner' import { StatusBar } from '@/components/shared/status-bar' import { SoloRealtimeBridge } from '@/components/solo/realtime-bridge' export default async function AppLayout({ children }: { children: React.ReactNode }) { const session = await getIronSession(await cookies(), sessionOptions) if (!session.userId) { redirect('/login') } const [user, userRoles] = await Promise.all([ prisma.user.findUnique({ where: { id: session.userId }, select: { username: true, email: true }, }), prisma.userRole.findMany({ where: { user_id: session.userId }, select: { role: true }, }), ]) const roles = userRoles.map(r => r.role as string) if (!user) { redirect('/login') } return (
Ga naar inhoud
{children}
) }