/* SPDX-FileCopyrightText: © 2025 Hornwitser SPDX-License-Identifier: AGPL-3.0-or-later */ export default defineNuxtRouteMiddleware(async (to, from) => { const event = useRequestEvent(); const sessionStore = useSessionStore(); await callOnce("fetch-session", async () => { await sessionStore.fetch(event); }) const accountStore = useAccountStore(); if (!accountStore.valid) { console.log("Not logged in, redirecting to /login"); return navigateTo("/login"); } if ( to.meta.allowedAccountTypes && !to.meta.allowedAccountTypes.includes(accountStore.type!) ) { throw createError({ status: 403, statusMessage: "Forbidden", message: "You are not allowed to access this resource.", }) } })