import { defineStore } from 'pinia' import { ref } from 'vue' import { getLoggedUser, logout, getAuthUsername } from 'src/api/auth' import { usePermissions } from 'src/composables/usePermissions' export const useAuthStore = defineStore('auth', () => { const user = ref(null) const loading = ref(true) const { loadPermissions } = usePermissions() async function checkSession () { loading.value = true try { user.value = await getLoggedUser() // Permissions depuis le hub : par courriel, avec REPLI par username Authentik (whoami sans courriel / // courriel non provisionné). Si les deux sont vides → permissions non chargées → App.vue affiche « fail-loud ». const email = (user.value && user.value !== 'authenticated') ? user.value : '' await loadPermissions(email, getAuthUsername()) } catch { user.value = 'authenticated' } finally { loading.value = false } } return { user, loading, checkSession, doLogout: logout } })