From ccb14848391d4e3dccdda7b14044475126d8134b Mon Sep 17 00:00:00 2001 From: Manus Sandbox Date: Sun, 23 Nov 2025 06:22:04 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Am=C3=A9lioration=20de=20la=20pag?= =?UTF-8?q?e=20de=20choix=20de=20connexion=20:=20ajout=20de=20la=20d=C3=A9?= =?UTF-8?q?tection=20automatique=20de=20l'=C3=A9tat=20de=20connexion.=20Le?= =?UTF-8?q?s=20utilisateurs=20d=C3=A9j=C3=A0=20connect=C3=A9s=20sont=20mai?= =?UTF-8?q?ntenant=20redirig=C3=A9s=20automatiquement=20vers=20le=20tablea?= =?UTF-8?q?u=20de=20bord=20admin,=20tandis=20que=20les=20utilisateurs=20no?= =?UTF-8?q?n=20connect=C3=A9s=20voient=20la=20page=20de=20choix=20entre=20?= =?UTF-8?q?connexion=20Manus=20OAuth=20et=20connexion=20locale.=20Cela=20?= =?UTF-8?q?=C3=A9vite=20d'afficher=20la=20page=20de=20choix=20inutilement?= =?UTF-8?q?=20aux=20utilisateurs=20d=C3=A9j=C3=A0=20authentifi=C3=A9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/pages/LoginChoice.tsx | 24 ++++++++++++++++++++++++ todo.md | 6 ++++++ 2 files changed, 30 insertions(+) diff --git a/client/src/pages/LoginChoice.tsx b/client/src/pages/LoginChoice.tsx index d4948c4..0221c92 100644 --- a/client/src/pages/LoginChoice.tsx +++ b/client/src/pages/LoginChoice.tsx @@ -1,11 +1,21 @@ import { useLocation } from "wouter"; +import { useAuth } from "@/_core/hooks/useAuth"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { APP_LOGO, APP_TITLE, getLoginUrl } from "@/const"; import { KeyRound, Shield } from "lucide-react"; +import { useEffect } from "react"; export default function LoginChoice() { const [, setLocation] = useLocation(); + const { user, loading, isAuthenticated } = useAuth(); + + // Rediriger les utilisateurs déjà connectés vers le tableau de bord + useEffect(() => { + if (!loading && isAuthenticated && user?.role === 'admin') { + setLocation('/admin'); + } + }, [loading, isAuthenticated, user?.role, setLocation]); const handleManusLogin = () => { window.location.href = getLoginUrl(); @@ -15,6 +25,20 @@ export default function LoginChoice() { setLocation("/login"); }; + // Afficher un loader pendant la vérification de l'authentification + if (loading) { + return ( +
+
+
+ ); + } + + // Ne pas afficher la page si l'utilisateur est déjà connecté (redirection en cours) + if (isAuthenticated && user?.role === 'admin') { + return null; + } + return (
diff --git a/todo.md b/todo.md index c69f5fc..a20719c 100644 --- a/todo.md +++ b/todo.md @@ -447,3 +447,9 @@ - [x] Modifier la procédure de déconnexion pour rediriger vers la page de choix (/) - [x] Tester la déconnexion et vérifier la redirection + +## Correction page de choix au lancement + +- [x] Analyser pourquoi la page de choix ne s'affiche pas au lancement +- [x] Corriger la redirection automatique +- [x] Tester l'affichage de la page de choix