// 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' // }) // } // } // })