Files
Classeo/frontend/src/routes/+layout.svelte
Mathias STRASSER e930c505df feat: Attribution de rôles multiples par utilisateur
Les utilisateurs Classeo étaient limités à un seul rôle, alors que
dans la réalité scolaire un directeur peut aussi être enseignant,
ou un parent peut avoir un rôle vie scolaire. Cette limitation
obligeait à créer des comptes distincts par fonction.

Le modèle User supporte désormais plusieurs rôles simultanés avec
basculement via le header. L'admin peut attribuer/retirer des rôles
depuis l'interface de gestion, avec des garde-fous : pas d'auto-
destitution, pas d'escalade de privilèges (seul SUPER_ADMIN peut
attribuer SUPER_ADMIN), vérification du statut actif pour le
switch de rôle, et TTL explicite sur le cache de rôle actif.
2026-02-10 11:46:55 +01:00

32 lines
784 B
Svelte

<script lang="ts">
import '../app.css';
import { browser } from '$app/environment';
import { QueryClient, QueryClientProvider } from '@tanstack/svelte-query';
import { onLogout } from '$lib/auth/auth.svelte';
import { resetRoleContext } from '$features/roles/roleContext.svelte';
let { children } = $props();
const queryClient = $state(
new QueryClient({
defaultOptions: {
queries: {
enabled: browser,
staleTime: 1000 * 60 * 5, // 5 minutes
retry: 1
}
}
})
);
// Clear user-specific caches on logout to prevent cross-account data leakage
onLogout(() => {
queryClient.removeQueries({ queryKey: ['sessions'] });
resetRoleContext();
});
</script>
<QueryClientProvider client={queryClient}>
{@render children()}
</QueryClientProvider>