tambah menu sideBarMenu , middleware definepagemeta
This commit is contained in:
No files matched your search
+37
-33
@@ -1,40 +1,44 @@
|
||||
|
||||
// middleware/auth.ts
|
||||
|
||||
import { useAccess } from '~/composables/useAccess'
|
||||
import { useAccess } from "~/composables/useAccess";
|
||||
export default defineNuxtRouteMiddleware((to) => {
|
||||
const { getRole, getPermissionsByPath } = useAccess()
|
||||
const role = useAccess()
|
||||
// const perms = getPermissionsByPath(to.path)
|
||||
|
||||
// const meta = to.meta
|
||||
// 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
|
||||
const isLoggedIn = !!role // role
|
||||
if (!isLoggedIn) {
|
||||
console.log('[ NOT LOGGED IN]', { path: to.path })
|
||||
//return navigateTo('/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
|
||||
}
|
||||
|
||||
// // Validasi permission
|
||||
// const rolePass = !meta.role || meta.role.includes(role)
|
||||
// const permissionPass = !meta.permission || meta.permission.every(p => perms.includes(p))
|
||||
|
||||
// if (!rolePass || !permissionPass) {
|
||||
// console.log('[ ACCESS DENIED]', {
|
||||
// path: to.path,
|
||||
// role,
|
||||
// requiredRole: meta.role,
|
||||
// permissions: perms,
|
||||
// requiredPermission: meta.permission
|
||||
// })
|
||||
// return navigateTo('/403') // Halaman tidak punya akses
|
||||
// }
|
||||
return navigateTo('/sample-page-copy')
|
||||
// Semua valid, lanjut ke halaman
|
||||
// console.log('[ACCESS GRANTED]', {
|
||||
// path: to.path,
|
||||
// role,
|
||||
// permissions
|
||||
// })
|
||||
})
|
||||
console.log('[ACCESS GRANTED]', {
|
||||
path: to.path,
|
||||
roleUser,
|
||||
mergedPages,
|
||||
permisionPage
|
||||
})
|
||||
});
|
||||
Reference in New Issue
Block a user