Files
gridpilot.gg/apps/website/app/admin/layout.tsx
2026-01-04 23:02:28 +01:00

30 lines
910 B
TypeScript

import { headers } from 'next/headers';
import { createRouteGuard } from '@/lib/auth/createRouteGuard';
interface AdminLayoutProps {
children: React.ReactNode;
}
/**
* Admin Layout
*
* Provides role-based protection for admin routes.
* Uses RouteGuard to enforce access control server-side.
*/
export default async function AdminLayout({ children }: AdminLayoutProps) {
console.log('[ADMIN LAYOUT] ========== ADMIN LAYOUT CALLED ==========');
const headerStore = await headers();
const pathname = headerStore.get('x-pathname') || '/';
console.log('[ADMIN LAYOUT] Pathname:', pathname);
const guard = createRouteGuard();
console.log('[ADMIN LAYOUT] About to call guard.enforce');
await guard.enforce({ pathname });
console.log('[ADMIN LAYOUT] guard.enforce completed successfully');
return (
<div className="min-h-screen bg-deep-graphite">
{children}
</div>
);
}