41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
// export default defineNuxtRouteMiddleware((to, from) => {
|
|
// const authStore = useAuthStore()
|
|
|
|
// // Pastikan user sudah login
|
|
// if (!authStore.isAuthenticated) {
|
|
// return navigateTo('/login')
|
|
// }
|
|
|
|
// // Ambil role yang dibutuhkan dari meta page
|
|
// const requiredRoles = to.meta.roles as string[] | undefined
|
|
// const requiredPermissions = to.meta.permissions as string[] | undefined
|
|
|
|
// // Cek role
|
|
// if (requiredRoles && requiredRoles.length > 0) {
|
|
// const hasRequiredRole = requiredRoles.some(role =>
|
|
// authStore.hasRole(role)
|
|
// )
|
|
|
|
// if (!hasRequiredRole) {
|
|
// throw createError({
|
|
// statusCode: 403,
|
|
// statusMessage: 'Anda tidak memiliki akses ke halaman ini'
|
|
// })
|
|
// }
|
|
// }
|
|
|
|
// // Cek permissions
|
|
// if (requiredPermissions && requiredPermissions.length > 0) {
|
|
// const hasRequiredPermission = requiredPermissions.some(permission =>
|
|
// authStore.hasPermission(permission)
|
|
// )
|
|
|
|
// if (!hasRequiredPermission) {
|
|
// throw createError({
|
|
// statusCode: 403,
|
|
// statusMessage: 'Anda tidak memiliki izin untuk mengakses halaman ini'
|
|
// })
|
|
// }
|
|
// }
|
|
// })
|