// middleware/auth.ts import { useAccess } from "~/composables/useAccess"; export default defineNuxtRouteMiddleware((to) => { // const perms = getPermissionsByPath(to.path) const roleUser = 'admin'; const { getRole, getMergedPages,getPermisionPage } = useAccess(to.path , roleUser); const mergedPages = getMergedPages const permisionPage = getPermisionPage //console.log("role", getRole); //console.log("meta", path); // Jika belum login, redirect ke halaman login if (!roleUser) { console.log("[ NOT LOGGED IN]", { path: to.meta }); return navigateTo('/auth/login') // } // Validasi permission pada halaman const meta = to.meta; const allowedRole = (meta.role || []) as string[] const rolePass = allowedRole.length === 0 || allowedRole.includes(roleUser) //const permissionPass = !meta.permission || meta.permission.every(p => perms.includes(p)) console.log('middleware auth jalan di:', allowedRole); //if (!rolePass || !permisionPage) { if (!rolePass || !mergedPages) { console.log('[ ACCESS DENIED]', { path: to.path, roleUser, mergedPages }) return navigateTo('/403') // Halaman tidak punya akses } console.log('[ACCESS GRANTED]', { path: to.path, roleUser, mergedPages, permisionPage }) });