3.6 KiB
3.6 KiB
👥 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
- Allez dans votre projet Supabase
- Authentication > Users
- Cliquez sur "Add user"
- Remplissez :
- Email :
admin@example.com - Password : Mot de passe sécurisé
- Email confirm : ✅ (cochez pour confirmer l'email)
- Email :
- Cliquez sur "Create user"
2. Ajouter l'utilisateur comme administrateur
- Allez dans SQL Editor
- Exécutez cette requête pour ajouter un admin :
-- 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 :
SELECT * FROM admin_users;
🔧 Gestion des Rôles
Rôles disponibles :
admin: Gestion des campagnes, propositions, participantssuper_admin: Toutes les permissions admin + gestion des autres administrateurs
Changer le rôle d'un administrateur :
-- 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 :
-- 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 :
- Utilisez des mots de passe forts
- Limitez le nombre de super admins
- Auditez régulièrement la liste des administrateurs
- Supprimez les comptes inactifs
- Utilisez des emails professionnels
🔍 Vérification
Tester la connexion :
- Lancez l'application :
npm run dev - Allez sur
/admin - Connectez-vous avec les identifiants créés
- Vérifiez que vous avez accès aux fonctionnalités
Tester les permissions :
-- 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.