# Guide d'Accès Staff en Mode Maintenance ## Fonctionnalité Implémentée Cette implémentation permet aux membres du staff de se connecter à l'Espace Paie même lorsque le site est en mode maintenance. ## Comment ça fonctionne ### 1. Page de Maintenance - Lorsque le site est en maintenance, un lien discret "Accès équipe" apparaît en bas de la page - Ce lien redirige vers `/signin?staff_access=true` ### 2. Page de Connexion Staff - Quand on accède à `/signin` avec le paramètre `staff_access=true`, la page affiche : - Un titre spécial : "Connexion Staff - Mode Maintenance" - Un avertissement orange : "⚠️ Site en maintenance - Accès équipe uniquement" - Tous les modes de connexion habituels (mot de passe et code par email) ### 3. Middleware Ajusté - Le middleware autorise maintenant l'accès à `/signin` même en mode maintenance - Après connexion réussie, les staff peuvent accéder normalement à l'application - Les non-staff restent bloqués et redirigés vers la page de maintenance ## Flux Utilisateur ### Pour un Staff 1. Visite du site en maintenance → page de maintenance 2. Clic sur "Accès équipe" → page de connexion staff 3. Saisie des identifiants → connexion réussie 4. Redirection vers l'application → accès complet ### Pour un Non-Staff 1. Visite du site en maintenance → page de maintenance 2. Même s'il trouve le lien "Accès équipe" → page de connexion 3. Après connexion → redirection vers la page de maintenance (middleware) ## Modifications Effectuées ### 1. `app/maintenance/MaintenancePage.tsx` ```tsx // Ajout du lien d'accès staff dans le footer
Accès équipe
``` ### 2. `app/signin/page.tsx` ```tsx // Détection du paramètre staff_access const [isStaffAccess, setIsStaffAccess] = useState(false); useEffect(() => { const urlParams = new URLSearchParams(window.location.search); setIsStaffAccess(urlParams.get('staff_access') === 'true'); }, []); // Affichage conditionnel du titre et message d'avertissement {isStaffAccess ? ( <> Connexion Staff - Mode Maintenance ) : ( "Connexion à l'Espace Paie" )} ``` ### 3. `middleware.ts` ```typescript // Exclusion de /signin du blocage de maintenance if (!isApiOrAssets && !isMaintenancePage && !isSigninPage) { // Vérification du mode maintenance... } ``` ## Sécurité - Le lien "Accès équipe" est discret et ne compromet pas la sécurité - L'authentification reste obligatoire pour tous - Seuls les vrais staff (vérifiés en base) peuvent accéder à l'app après connexion - Les non-staff sont toujours bloqués par le middleware après authentification ## Test Manuel 1. **Activer le mode maintenance** (via le bouton staff dans l'interface) 2. **Se déconnecter** 3. **Visiter le site** → vérifier la page de maintenance avec le lien 4. **Cliquer sur "Accès équipe"** → vérifier la page de connexion staff 5. **Se connecter en tant que staff** → vérifier l'accès à l'app 6. **Se connecter en tant que non-staff** → vérifier le blocage ## Avantages - ✅ Accès d'urgence pour les staff en cas de maintenance - ✅ Interface claire indiquant le mode spécial - ✅ Sécurité préservée (authentification + vérification staff) - ✅ Fonctionnalité discrète pour les utilisateurs normaux - ✅ Compatible avec tous les modes de connexion existants