2025-03-09 15:51:00 +01:00
|
|
|
export default defineNuxtRouteMiddleware(async (to, from) => {
|
2025-05-24 17:53:33 +02:00
|
|
|
const sessionStore = useSessionStore();
|
2025-03-07 18:43:24 +01:00
|
|
|
|
2025-05-24 17:53:33 +02:00
|
|
|
if (!sessionStore.account) {
|
2025-03-07 18:43:24 +01:00
|
|
|
console.log("Not logged in, redirecting to /login");
|
|
|
|
return navigateTo("/login");
|
|
|
|
}
|
2025-03-09 22:21:13 +01:00
|
|
|
|
|
|
|
if (
|
|
|
|
to.meta.allowedAccountTypes
|
2025-05-24 17:53:33 +02:00
|
|
|
&& !to.meta.allowedAccountTypes.includes(sessionStore.account.type)
|
2025-03-09 22:21:13 +01:00
|
|
|
) {
|
|
|
|
throw createError({
|
|
|
|
status: 403,
|
|
|
|
statusMessage: "Forbidden",
|
|
|
|
message: "You are not allowed to access this resource.",
|
|
|
|
})
|
|
|
|
}
|
2025-03-07 18:43:24 +01:00
|
|
|
})
|