refactor(auth): centralize role checks into utility
Removed direct user role string checks and replaced with type-safe utils.
This commit is contained in:
+3
-12
@@ -20,19 +20,10 @@ export default defineNuxtRouteMiddleware(async (to) => {
|
||||
const requiredRole = to.meta.auth?.role
|
||||
|
||||
if (requiredRole && auth.user.value) {
|
||||
const userRole = auth.user.value.role.toUpperCase()
|
||||
const userRole = auth.user.value.role
|
||||
|
||||
const roleLevels: Record<string, number> = {
|
||||
'CITIZEN': 1,
|
||||
'OPERATOR': 2,
|
||||
'ADMIN': 3
|
||||
}
|
||||
|
||||
const userLevel = roleLevels[userRole] || 0
|
||||
const requiredLevel = roleLevels[requiredRole] || 0
|
||||
|
||||
if (userLevel < requiredLevel) {
|
||||
console.warn(`[Auth] User role ${userRole} (level ${userLevel}) insufficient for required ${requiredRole} (level ${requiredLevel})`)
|
||||
if (!hasMinimumRole(userRole, requiredRole)) {
|
||||
console.warn(`[Auth] User role ${userRole} insufficient for required ${requiredRole}`)
|
||||
return navigateTo('/')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user