All checks were successful
Auto Tag Develop / tag (push) Successful in 6s
| Numéro du ticket | Titre du ticket | |------------------|-----------------| | | | ## Description de la PR ## Modification du .env ## Check list - [x] Pas de régression - [x] TU/TI/TF rédigée - [x] TU/TI/TF OK - [ ] CHANGELOG modifié Co-authored-by: Matthieu <mtholot19@gmail.com> Reviewed-on: #8 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
31 lines
994 B
TypeScript
31 lines
994 B
TypeScript
export default defineNuxtRouteMiddleware(async (to) => {
|
|
const auth = useAuthStore()
|
|
const isLogin = to.path === '/login'
|
|
|
|
if (!auth.checked) {
|
|
await auth.ensureSession()
|
|
}
|
|
|
|
if (!isLogin && !auth.isAuthenticated) {
|
|
return navigateTo('/login')
|
|
}
|
|
|
|
if (isLogin && auth.isAuthenticated) {
|
|
return navigateTo('/')
|
|
}
|
|
|
|
if (auth.isAuthenticated) {
|
|
const { loaded: sidebarLoaded, loadSidebar } = useSidebar()
|
|
const { loaded: modulesLoaded, loadModules } = useModules()
|
|
|
|
// Chargement parallele sidebar + modules actifs : les deux sont
|
|
// consommes par layouts/default.vue (sidebar pour la nav, modules
|
|
// pour conditionner le SiteSelector). Charger en parallele evite
|
|
// le flash au premier paint de la barre.
|
|
await Promise.all([
|
|
sidebarLoaded.value ? Promise.resolve() : loadSidebar(),
|
|
modulesLoaded.value ? Promise.resolve() : loadModules(),
|
|
])
|
|
}
|
|
})
|