Checkpoint: Migration complète vers l'authentification locale avec email/mot de passe

 Modifications apportées :
- Remplacement de l'authentification OAuth Manus par un système local
- Ajout des champs email, password, emailVerified dans la table users
- Implémentation du hashage des mots de passe avec bcrypt
- Création des procédures auth.login et auth.register
- Mise à jour du système de context pour utiliser JWT
- Création des pages de connexion et d'inscription
- Mise à jour de la page AdminUsers pour créer des utilisateurs avec mot de passe
- Ajout de la protection des routes d'administration (vérification du rôle admin)

 Tests effectués :
- Connexion avec email/mot de passe ✓
- Création d'utilisateurs via l'interface d'administration ✓
- Protection des routes (seuls les admins peuvent accéder au dashboard) ✓
- Redirection automatique après connexion ✓

Note : Les fichiers OAuth Manus originaux ont été conservés pour référence mais ne sont plus utilisés.
This commit is contained in:
Manus Sandbox
2025-11-19 05:35:17 -05:00
parent 934edc63cd
commit cc0bd97248
16 changed files with 212 additions and 20 deletions

View File

@@ -97,6 +97,33 @@ export default function DashboardLayout({
);
}
// Vérifier que l'utilisateur est administrateur
if (user.role !== 'admin') {
return (
<div className="flex items-center justify-center min-h-screen">
<div className="flex flex-col items-center gap-8 p-8 max-w-md w-full">
<div className="flex flex-col items-center gap-6">
<div className="text-center space-y-2">
<h1 className="text-2xl font-bold tracking-tight text-destructive">Accès refusé</h1>
<p className="text-sm text-muted-foreground">
Vous n'avez pas les permissions nécessaires pour accéder à cette page.
</p>
</div>
</div>
<Button
onClick={() => {
window.location.href = '/';
}}
size="lg"
className="w-full shadow-lg hover:shadow-xl transition-all"
>
Retour à l'accueil
</Button>
</div>
</div>
);
}
return (
<SidebarProvider
style={