Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Command;
  4.  
  5. use App\Entity\User;
  6. use Knp\Command\Command;
  7. use Symfony\Component\Console\Input\InputArgument;
  8. use Symfony\Component\Console\Input\InputInterface;
  9. use Symfony\Component\Console\Output\OutputInterface;
  10.  
  11. class GenerateUser extends Command
  12. {
  13. private $app;
  14.  
  15. public function __construct($app, $name = null)
  16. {
  17. parent::__construct($name);
  18. $this->app = $app;
  19. }
  20.  
  21. protected function configure()
  22. {
  23. $this
  24. ->setName("app:generate:user")
  25. ->setDescription("Generate User. Set arguments: email, name, password, role. [email(string), name(string), password(string), role(bool) = 'admin' or 'user']")
  26. ->setDefinition([
  27. new InputArgument(
  28. 'email', InputArgument::REQUIRED, 'Enter user Email.'
  29. ),
  30. new InputArgument(
  31. 'name', InputArgument::REQUIRED, 'Enter user Name.'
  32. ),
  33. new InputArgument(
  34. 'password', InputArgument::REQUIRED, 'Enter user Password.'
  35. ),
  36. new InputArgument(
  37. 'role', InputArgument::REQUIRED, 'Enter user Role.'
  38. ),
  39. ]);
  40. }
  41.  
  42. protected function execute(InputInterface $input, OutputInterface $output)
  43. {
  44. $em = $this->app['orm.em'];
  45. $email = $input->getArgument('email');
  46. $name = $input->getArgument('name');
  47. $password = $input->getArgument('password');
  48. $role = $input->getArgument('role');
  49.  
  50. if (($role != 'user') && (($role != 'admin'))) {
  51. throw new \InvalidArgumentException(
  52. sprintf("[Role FieldError] " . $role . " role is note define. Select 'admin' or 'user' role.")
  53. );
  54. }
  55.  
  56. $user = new User();
  57. $user->setEmail($email);
  58. $user->setUsername($name);
  59. if ($role == 'user') {
  60. $user->setRoles('ROLE_USER');
  61. } elseif ($role == 'admin') {
  62. $user->setRoles('ROLE_ADMIN');
  63. }
  64.  
  65. $user->setPassword($this->app['encode_password']($user, $password));
  66. $user->setEnable(true);
  67. $user->setCreatedAt(new \DateTime('now', new \DateTimeZone('Europe/Kiev')));
  68. $user->setUpdatedAt(new \DateTime('now', new \DateTimeZone('Europe/Kiev')));
  69. $em->persist($user);
  70. $em->flush();
  71.  
  72. $output->writeln("User has been created!");
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement