hasher = $hasher; } # Méthode principale qui génère les données en base public function load(ObjectManager $manager): void { # Initialisation de Faker en français $faker = Factory::create('fr_FR'); # Boucle pour créer 10 utilisateurs for ($i = 0; $i < 10; $i++) { # Instanciation d'un nouvel utilisateur (Adhérent) $user = new User(); # Attribution d'un email aléatoire et unique $user->setEmail($faker->unique()->safeEmail()); # Définition des droits d'accès de l'utilisateur $user->setRoles(['ROLE_USER', 'ROLE_ORGANISATION']); # Hachage sécurisé du mot de passe "password" $user->setPassword($this->hasher->hashPassword($user, 'password')); # Définition d'un NOM et Prénom $user->setFirstname($faker->firstName()); $user->setLastname($faker->lastName()); # autres fixtures à modifier plus tard $user->setNextcloudQuota($faker->numberBetween(1, 20) . 'G'); $user->setQuota($faker->numberBetween(1, 10) . 'G'); $user->setEmailQuota('1G'); $user->setAlternateEmail($faker->unique()->safeEmail()); $user->setHasAgoraAccess($faker->boolean(70)); // 70% de chance d'avoir accès $user->setHasMobilizon($faker->boolean(50)); $user->setHasNextcloudAccess($faker->boolean(90)); $user->setIdentifiantKaz($faker->uuid()); # Préparation de l'enregistrement de l'objet en base de données $manager->persist($user); } // Création d'un compte de test fixe $admin = new User(); $admin->setEmail('admin@kaz.bzh'); $admin->setRoles(['ROLE_USER', 'ROLE_ADMIN', 'ROLE_ORGANISATION']); $admin->setPassword($this->hasher->hashPassword($admin, 'password')); $admin->setFirstName('Admin'); $admin->setLastName('KAZ'); // Remplissage des champs obligatoires restants pour éviter les erreurs SQL $admin->setAlternateEmail('secours@kaz.bzh'); $admin->setIdentifiantKaz('ADMIN-KAZ-001'); $admin->setQuota('5G'); $admin->setEmailQuota('1G'); $admin->setNextcloudQuota('10G'); $admin->setHasNextcloudAccess(true); $admin->setHasMobilizon(true); $admin->setHasAgoraAccess(true); $manager->persist($admin); // Création d'un compte de test fixe $melvin = new User(); $melvin->setEmail('melvin.leveque@kazkouil.fr'); $melvin->setRoles(['ROLE_USER', 'ROLE_ADMIN', 'ROLE_ORGANISATION']); $melvin->setPassword($this->hasher->hashPassword($melvin, 'password')); $melvin->setFirstName(''); $melvin->setLastName(''); $melvin->setAlternateEmail(''); $melvin->setIdentifiantKaz('MELVIN-KAZ-001'); $melvin->setQuota('5G'); $melvin->setEmailQuota('1G'); $melvin->setNextcloudQuota('10G'); $melvin->setHasNextcloudAccess(true); $melvin->setHasMobilizon(true); $melvin->setHasAgoraAccess(true); $manager->persist($melvin); # Exécution réelle des requêtes SQL (envoi vers la base), une fois la bouche finie $manager->flush(); } }