# Créer un compte administrateur ## 📋 Statut actuel **Aucun compte admin n'est créé automatiquement** lors de la configuration initiale. Les seeders créent uniquement : - Les rôles (via `RoleSeeder`) - Les événements (via `EventSeeder`) - Les settings (via `EventSettingSeeder`) ## ✅ Solution 1 : Utiliser le UserSeeder (Recommandé) Un seeder `UserSeeder` a été créé pour faciliter la création des comptes admin et treasurer. ### Exécuter le seeder ```bash cd api php artisan db:seed --class=UserSeeder ``` **Comptes créés :** - **Admin** : `admin@eventshbf.org` / `admin123` - **Treasurer** : `treasurer@eventshbf.org` / `treasurer123` ⚠️ **Important** : Changez ces mots de passe immédiatement après la première connexion ! ### Ou exécuter tous les seeders ```bash php artisan db:seed ``` Cela exécutera tous les seeders dans l'ordre (rôles, utilisateurs, événements, settings). --- ## ✅ Solution 2 : Créer manuellement via Tinker Si vous préférez créer un compte personnalisé : ```bash cd api php artisan tinker ``` Puis dans Tinker : ```php // Créer l'utilisateur admin $admin = App\Models\User::create([ 'name' => 'Votre Nom', 'email' => 'votre-email@example.com', 'password' => Hash::make('votre-mot-de-passe-securise'), 'email_verified_at' => now(), ]); // Assigner le rôle admin $admin->assignRole('admin'); // Vérifier $admin->hasRole('admin'); // Devrait retourner true ``` **Exemple concret :** ```php $admin = App\Models\User::create([ 'name' => 'Admin Principal', 'email' => 'admin@haggai-bf.org', 'password' => Hash::make('MotDePasseSecurise2026!'), 'email_verified_at' => now(), ]); $admin->assignRole('admin'); ``` --- ## ✅ Solution 3 : Créer via l'API (après avoir créé un compte participant) 1. Créer un compte via `/api/auth/register` (sera créé avec le rôle `participant`) 2. Se connecter avec ce compte 3. Utiliser Tinker pour promouvoir en admin : ```bash php artisan tinker ``` ```php $user = App\Models\User::where('email', 'votre-email@example.com')->first(); $user->assignRole('admin'); $user->removeRole('participant'); // Optionnel ``` --- ## 🔐 Vérifier les comptes existants Pour voir tous les utilisateurs et leurs rôles : ```bash php artisan tinker ``` ```php // Lister tous les admins $admins = App\Models\User::role('admin')->get(); foreach ($admins as $admin) { echo "Admin: {$admin->email} ({$admin->name})\n"; } // Lister tous les treasurers $treasurers = App\Models\User::role('treasurer')->get(); foreach ($treasurers as $treasurer) { echo "Treasurer: {$treasurer->email} ({$treasurer->name})\n"; } // Vérifier un utilisateur spécifique $user = App\Models\User::where('email', 'admin@eventshbf.org')->first(); if ($user) { echo "Rôles: " . $user->roles->pluck('name')->join(', ') . "\n"; } ``` --- ## 🧪 Tester la connexion Une fois le compte créé, testez la connexion via l'API : ```bash curl -X POST http://localhost:8000/api/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "admin@eventshbf.org", "password": "admin123" }' ``` Vous devriez recevoir un token JWT que vous pouvez utiliser pour accéder au dashboard admin. --- ## 📝 Notes importantes 1. **Sécurité** : Les mots de passe par défaut (`admin123`, `treasurer123`) sont **temporaires**. Changez-les immédiatement en production. 2. **Rôles disponibles** : - `admin` : Accès complet (view + update status + export) - `treasurer` : Accès read-only + export (pas de modification de statut) - `participant` : Utilisateur standard - `guest` : Utilisateurs créés via inscription publique (ne peuvent pas se connecter) 3. **Permissions** : - Admin peut accéder à `/admin/registrations` et modifier les statuts - Treasurer peut accéder à `/admin/registrations` mais ne peut pas modifier les statuts --- ## 🚀 Prochaines étapes Après avoir créé le compte admin : 1. Se connecter via le frontend ou l'API 2. Accéder au dashboard : `http://localhost:3000/admin/registrations` 3. Tester les fonctionnalités (liste, filtres, stats, changement de statut) --- **Date de création** : 2026-01-19