From 0d8335dd2c477f39f1f468d973419a63702e2da9 Mon Sep 17 00:00:00 2001 From: Frank van den Berg Date: Sat, 27 Jun 2026 15:34:36 +0200 Subject: [PATCH] Command voor aanmaken user --- src/Command/CreateUserCommand.php | 66 +++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/Command/CreateUserCommand.php diff --git a/src/Command/CreateUserCommand.php b/src/Command/CreateUserCommand.php new file mode 100644 index 0000000..afe640d --- /dev/null +++ b/src/Command/CreateUserCommand.php @@ -0,0 +1,66 @@ +addArgument('email', InputArgument::REQUIRED, 'Email address') + ->addArgument('username', InputArgument::REQUIRED, 'Username') + ->addArgument('password', InputArgument::REQUIRED, 'Plain-text password') + ->addOption('admin', null, InputOption::VALUE_NONE, 'Grant ROLE_ADMIN'); + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $io = new SymfonyStyle($input, $output); + + $email = $input->getArgument('email'); + $username = $input->getArgument('username'); + $password = $input->getArgument('password'); + $isAdmin = $input->getOption('admin'); + + $user = new User(); + $user->setEmail($email); + $user->setUsername($username); + $user->setPassword($this->passwordHasher->hashPassword($user, $password)); + $user->setIsVerified(true); + $user->setRoles($isAdmin ? ['ROLE_ADMIN'] : []); + + $this->entityManager->persist($user); + $this->entityManager->flush(); + + $io->success(sprintf( + 'User "%s" (%s) created%s.', + $username, + $email, + $isAdmin ? ' with ROLE_ADMIN' : '', + )); + + return Command::SUCCESS; + } +}