LoadUserData.php 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace Muzich\UserBundle\DataFixtures\ORM;
  3. use Doctrine\Common\DataFixtures\FixtureInterface;
  4. use Muzich\CoreBundle\Entity\User;
  5. use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
  6. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  7. use Symfony\Component\DependencyInjection\ContainerInterface;
  8. class LoadUserData implements FixtureInterface, ContainerAwareInterface
  9. {
  10. private $container;
  11. private $user_manager;
  12. private $entity_manager;
  13. public function setContainer(ContainerInterface $container = null)
  14. {
  15. $this->container = $container;
  16. }
  17. /**
  18. *
  19. *
  20. * @param string $username
  21. * @param string $email
  22. * @param string $password_raw
  23. * @param array $roles
  24. * @return User
  25. */
  26. protected function createUser($username, $email, $password_raw, $superadmin = false, $enabled = true)
  27. {
  28. $user = $this->user_manager->createUser();
  29. $user = new User();
  30. $user->setUsername($username);
  31. $user->setEmail($email);
  32. $user->setSuperAdmin($superadmin);
  33. $user->setAlgorithm('sha512');
  34. $user->setPlainPassword($password_raw);
  35. $user->setEnabled($enabled);
  36. $this->user_manager->updatePassword($user);
  37. $this->user_manager->updateUser($user, false);
  38. $this->entity_manager->persist($user);
  39. }
  40. public function load($entity_manager)
  41. {
  42. $this->entity_manager = $entity_manager;
  43. $this->user_manager = $this->container->get('fos_user.user_manager');
  44. $this->createUser('admin', 'admin@root', 'toor');
  45. $this->createUser('bux', 'bux@root', 'toor');
  46. $this->entity_manager->flush();
  47. }
  48. }