# đŸ‘„ Gestion des Administrateurs - Mes Budgets Participatifs ## 🔐 **Approche SĂ©curisĂ©e** La gestion des utilisateurs et administrateurs se fait **uniquement via l'interface Supabase** pour une sĂ©curitĂ© maximale. L'application ne permet pas la crĂ©ation d'utilisateurs. ## 📋 **Étapes de Configuration** ### 1. **CrĂ©er un utilisateur dans Supabase** 1. Allez dans votre projet Supabase 2. **Authentication** > **Users** 3. Cliquez sur **"Add user"** 4. Remplissez : - **Email** : `admin@example.com` - **Password** : Mot de passe sĂ©curisĂ© - **Email confirm** : ✅ (cochez pour confirmer l'email) 5. Cliquez sur **"Create user"** ### 2. **Ajouter l'utilisateur comme administrateur** 1. Allez dans **SQL Editor** 2. ExĂ©cutez cette requĂȘte pour ajouter un admin : ```sql -- Ajouter un administrateur INSERT INTO admin_users (id, email, role) VALUES ( 'USER_ID_FROM_SUPABASE', 'admin@example.com', 'admin' ); -- Ou pour un super administrateur INSERT INTO admin_users (id, email, role) VALUES ( 'USER_ID_FROM_SUPABASE', 'admin@example.com', 'super_admin' ); ``` **Pour obtenir l'USER_ID :** - Allez dans **Authentication** > **Users** - Trouvez votre utilisateur - Copiez l'ID (format UUID) ### 3. **VĂ©rifier la configuration** ExĂ©cutez cette requĂȘte pour vĂ©rifier : ```sql SELECT * FROM admin_users; ``` ## 🔧 **Gestion des RĂŽles** ### **RĂŽles disponibles :** - **`admin`** : Gestion des campagnes, propositions, participants - **`super_admin`** : Toutes les permissions admin + gestion des autres administrateurs ### **Changer le rĂŽle d'un administrateur :** ```sql -- Promouvoir en super admin UPDATE admin_users SET role = 'super_admin' WHERE email = 'admin@example.com'; -- RĂ©trograder en admin UPDATE admin_users SET role = 'admin' WHERE email = 'admin@example.com'; ``` ### **Supprimer un administrateur :** ```sql -- Supprimer de la table admin_users DELETE FROM admin_users WHERE email = 'admin@example.com'; -- Note : L'utilisateur reste dans auth.users -- Pour le supprimer complĂštement, allez dans Authentication > Users ``` ## đŸ›Ąïž **SĂ©curitĂ©** ### **Avantages de cette approche :** - ✅ **Aucune crĂ©ation d'utilisateur** depuis l'application - ✅ **Gestion centralisĂ©e** via Supabase - ✅ **Audit complet** des utilisateurs - ✅ **Politiques RLS** strictes - ✅ **Pas de clĂ© de service** exposĂ©e dans l'app ### **Bonnes pratiques :** 1. **Utilisez des mots de passe forts** 2. **Limitez le nombre de super admins** 3. **Auditez rĂ©guliĂšrement** la liste des administrateurs 4. **Supprimez les comptes inactifs** 5. **Utilisez des emails professionnels** ## 🔍 **VĂ©rification** ### **Tester la connexion :** 1. Lancez l'application : `npm run dev` 2. Allez sur `/admin` 3. Connectez-vous avec les identifiants créés 4. VĂ©rifiez que vous avez accĂšs aux fonctionnalitĂ©s ### **Tester les permissions :** ```sql -- VĂ©rifier les admins actuels SELECT id, email, role, created_at FROM admin_users ORDER BY created_at DESC; ``` ## 🚹 **DĂ©pannage** ### **ProblĂšme : "AccĂšs refusĂ©"** - VĂ©rifiez que l'utilisateur existe dans `auth.users` - VĂ©rifiez qu'il est bien dans `admin_users` - VĂ©rifiez le rĂŽle (admin ou super_admin) ### **ProblĂšme : "Utilisateur non trouvĂ©"** - VĂ©rifiez l'email dans `auth.users` - VĂ©rifiez l'ID utilisĂ© dans `admin_users` ### **ProblĂšme : "Permissions insuffisantes"** - VĂ©rifiez le rĂŽle dans `admin_users` - Les super admins ont plus de permissions --- **Note :** Cette approche garantit une sĂ©curitĂ© maximale en centralisant la gestion des utilisateurs dans Supabase.