bookclub-manager/nuxt/middleware/role-admin.ts

21 lines
449 B
TypeScript

export default defineNuxtRouteMiddleware((to, from) => {
const nuxtApp = useNuxtApp()
const auth = useAuthStore()
if (process.server) {
return
}
if (auth.isLoggedIn && !auth.user.roles.includes('admin')) {
return nuxtApp.runWithContext(() => {
useToast().add({
icon: 'i-heroicons-exclamation-circle-solid',
title: 'Access denied.',
color: 'red',
})
return navigateTo('/')
})
}
})