From a62083355080359fb7dc7bbf1e9b16aa47eda0e4 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Fri, 19 Jun 2026 15:28:16 +0200 Subject: [PATCH] feat(front) : load sidebar/modules after login and redirect disabled routes --- frontend/app/middleware/auth.global.ts | 14 ++++++++++++++ frontend/app/middleware/modules.global.ts | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 frontend/app/middleware/modules.global.ts diff --git a/frontend/app/middleware/auth.global.ts b/frontend/app/middleware/auth.global.ts index 18799ca..4c98f1e 100644 --- a/frontend/app/middleware/auth.global.ts +++ b/frontend/app/middleware/auth.global.ts @@ -13,4 +13,18 @@ export default defineNuxtRouteMiddleware(async (to) => { if (isLogin && auth.isAuthenticated) { return navigateTo('/') } + + const { loaded: sidebarLoaded, loadSidebar, resetSidebar } = useSidebar() + const { loaded: modulesLoaded, loadModules, resetModules } = useModules() + + if (auth.isAuthenticated) { + await Promise.all([ + sidebarLoaded.value ? Promise.resolve() : loadSidebar(), + modulesLoaded.value ? Promise.resolve() : loadModules(), + ]) + } else { + // Logout / session expirée : purge l'état partagé pour le prochain login. + resetSidebar() + resetModules() + } }) diff --git a/frontend/app/middleware/modules.global.ts b/frontend/app/middleware/modules.global.ts new file mode 100644 index 0000000..3cd5f22 --- /dev/null +++ b/frontend/app/middleware/modules.global.ts @@ -0,0 +1,15 @@ +export default defineNuxtRouteMiddleware(async (to) => { + const auth = useAuthStore() + if (!auth.isAuthenticated) { + return + } + + const { loaded, loadSidebar, isRouteDisabled } = useSidebar() + if (!loaded.value) { + await loadSidebar() + } + + if (isRouteDisabled(to.path)) { + return navigateTo('/') + } +})