feat(core) : footer sidebar — compte connecté + déconnexion inline + version

Déconnexion déplacée du menu vers le footer (compte connecté au survol +
version). useLogout() appelle clearSession() (reset des stores singletons via
onAuthSessionCleared) puis redirige vers /login, sans page /logout intermédiaire.
This commit is contained in:
2026-06-29 10:24:57 +02:00
parent d5bbe8afd9
commit d6a40e4843
10 changed files with 120 additions and 62 deletions
@@ -6,8 +6,8 @@
* rollback si la requete PATCH `/api/me/current-site` echoue.
*
* Garantie d'unicite : le flag `switching` bloque les double-clicks
* concurrents. Le reset explicite est appele au logout
* (voir `modules/core/pages/logout.vue`).
* concurrents. Le state est purge au logout via `onAuthSessionCleared`
* (declenche par `clearSession()`, cf. `useLogout` et l'intercepteur 401).
*
* Auto-select : aucun. Le backend (`UserRbacProcessor::ensureCurrentSiteConsistency`)
* garantit deja l'invariant "user avec sites non vide => currentSite non null"
@@ -30,8 +30,8 @@ const availableSites = ref<Site[]>([])
const switching = ref(false)
// Enregistrement unique au niveau module (singleton) : quand clearSession()
// est appelee par l'intercepteur 401 de useApi, le state local est purgé
// de la meme facon qu'au logout explicite (logout.vue).
// est appelee (logout volontaire via useLogout, ou intercepteur 401 de useApi),
// le state local est purgé.
onAuthSessionCleared(() => {
currentSite.value = null
availableSites.value = []