Scrum4Me/app/(app)/admin/layout.tsx
Scrum4Me Agent c0ded1f482 feat(ST-nma6ylbl): requireAdmin() guard + /admin layout-shell + tests
- lib/auth-guard.ts: requireAdmin() toegevoegd — redirect /dashboard bij !userId of !isAdmin
- app/(app)/admin/layout.tsx: admin-sidebar met links naar /admin/users, /admin/jobs, /admin/products
- app/(app)/admin/page.tsx: redirect-stub naar /admin/users
- __tests__/lib/auth-guard.test.ts: 3 tests voor requireAdmin() (geen userId, isAdmin=false, isAdmin=true)
2026-05-05 14:26:03 +02:00

16 lines
544 B
TypeScript

import { requireAdmin } from '@/lib/auth-guard'
import Link from 'next/link'
export default async function AdminLayout({ children }: { children: React.ReactNode }) {
await requireAdmin()
return (
<div className="flex min-h-screen">
<nav className="w-48 border-r p-4 flex flex-col gap-2">
<Link href="/admin/users">Gebruikers</Link>
<Link href="/admin/jobs">Claude Jobs</Link>
<Link href="/admin/products">Producten</Link>
</nav>
<main className="flex-1 p-6">{children}</main>
</div>
)
}