fix: admin-navigatie zichtbaar voor ADMIN-rol gebruikers
- requireAdmin() checkt nu de database i.p.v. session.isAdmin (was altijd undefined)
- loginAction stelt session.isAdmin in op basis van UserRole in de DB
- registerAction stelt session.isAdmin = false expliciet in
- NavBar toont 'Admin'-link conditioneel als roles.includes('ADMIN')
- UserMenu ROLE_LABELS uitgebreid met ADMIN → 'Admin'
- Tests aangepast: prismaUserRole.findFirst mock toegevoegd
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c3f10cccce
commit
fbf58d4e44
6 changed files with 26 additions and 2 deletions
|
|
@ -47,6 +47,7 @@ export async function registerAction(_prevState: unknown, formData: FormData) {
|
|||
const session = await getIronSession<SessionData>(await cookies(), sessionOptions)
|
||||
session.userId = result.user!.id
|
||||
session.isDemo = false
|
||||
session.isAdmin = false
|
||||
await session.save()
|
||||
|
||||
redirect('/dashboard')
|
||||
|
|
@ -72,9 +73,13 @@ export async function loginAction(_prevState: unknown, formData: FormData) {
|
|||
return { error: 'Onjuiste gebruikersnaam of wachtwoord' }
|
||||
}
|
||||
|
||||
const adminRole = await prisma.userRole.findFirst({
|
||||
where: { user_id: user.id, role: 'ADMIN' },
|
||||
})
|
||||
const session = await getIronSession<SessionData>(await cookies(), sessionOptions)
|
||||
session.userId = user.id
|
||||
session.isDemo = user.is_demo
|
||||
session.isAdmin = !!adminRole
|
||||
await session.save()
|
||||
|
||||
// PBI-11 / ST-1135: telefoon-UA's krijgen de mobile-shell.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue