feat: add role negation and negate some routes to admins
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { checkRoleAccess, type MetaRoleRequirement } from '~/utils/roles'
|
||||
|
||||
export default defineNuxtRouteMiddleware(async (to) => {
|
||||
const auth = useAuth()
|
||||
|
||||
@@ -14,13 +16,13 @@ export default defineNuxtRouteMiddleware(async (to) => {
|
||||
return navigateTo('/auth/login')
|
||||
}
|
||||
|
||||
const requiredRole = to.meta.auth?.role
|
||||
const requiredRole = to.meta.auth?.role as MetaRoleRequirement | undefined
|
||||
|
||||
if (requiredRole && auth.user.value) {
|
||||
const userRole = auth.user.value.role
|
||||
|
||||
if (!hasMinimumRole(userRole, requiredRole)) {
|
||||
console.warn(`[Auth] User role ${userRole} insufficient for required ${requiredRole}`)
|
||||
if (!checkRoleAccess(userRole, requiredRole)) {
|
||||
console.warn(`[Auth] User role '${userRole}' rejected for route requirement:`, requiredRole)
|
||||
return navigateTo('/')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user