creation de l'entite User #7
@@ -2,16 +2,61 @@
|
|||||||
|
|
||||||
namespace App\DataFixtures;
|
namespace App\DataFixtures;
|
||||||
|
|
||||||
|
use App\Entity\User;
|
||||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||||
use Doctrine\Persistence\ObjectManager;
|
use Doctrine\Persistence\ObjectManager;
|
||||||
|
use Faker\Factory;
|
||||||
|
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
||||||
|
|
||||||
class AppFixtures extends Fixture
|
class AppFixtures extends Fixture
|
||||||
{
|
{
|
||||||
|
# Initialisation de l'outil de hachage de Symfony
|
||||||
|
private UserPasswordHasherInterface $hasher;
|
||||||
|
|
||||||
|
# Injection de dépendance pour récupérer le service de sécurité
|
||||||
|
public function __construct(UserPasswordHasherInterface $hasher)
|
||||||
|
{
|
||||||
|
$this->hasher = $hasher;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Méthode principale qui génère les données en base
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
// $product = new Product();
|
# Initialisation de Faker en français
|
||||||
// $manager->persist($product);
|
$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']);
|
||||||
|
|
||||||
|
# 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->setEmailDeSecours($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);
|
||||||
|
}
|
||||||
|
# Exécution réelle des requêtes SQL (envoi vers la base), une fois la bouche finie
|
||||||
$manager->flush();
|
$manager->flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user