Exemplo n.º 1
0
 /**
  * @param string          $username
  * @param InputInterface  $input
  * @param OutputInterface $output
  *
  * @return RZ\Roadiz\Core\Entities\User
  */
 private function executeUserCreation($username, InputInterface $input, OutputInterface $output)
 {
     $user = new User();
     $user->setUsername($username);
     do {
         $questionEmail = new Question('<question>Email</question> : ', '');
         $email = $this->questionHelper->ask($input, $output, $questionEmail);
     } while (!filter_var($email, FILTER_VALIDATE_EMAIL) || $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\User')->emailExists($email));
     $user->setEmail($email);
     $questionBack = new ConfirmationQuestion('<question>Is user a backend user?</question> : ', false);
     if ($this->questionHelper->ask($input, $output, $questionBack)) {
         $user->addRole($this->getRole(Role::ROLE_BACKEND_USER));
     }
     $questionAdmin = new ConfirmationQuestion('<question>Is user a super-admin user?</question> : ', false);
     if ($this->questionHelper->ask($input, $output, $questionAdmin)) {
         $user->addRole($this->getRole(Role::ROLE_SUPERADMIN));
     }
     $this->entityManager->persist($user);
     $user->getViewer()->sendSignInConfirmation();
     $this->entityManager->flush();
     $text = '<info>User “' . $username . '”<' . $email . '> created…</info>' . PHP_EOL;
     $text .= '<info>Password “' . $user->getPlainPassword() . '”.</info>' . PHP_EOL;
     $output->writeln($text);
     return $user;
 }
Exemplo n.º 2
0
 /**
  * @param array $data
  *
  * @return boolean
  */
 public function createDefaultUser($data)
 {
     $existing = $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\User')->findOneBy(['username' => $data['username'], 'email' => $data['email']]);
     if ($existing === null) {
         $user = new User();
         $user->setUsername($data['username']);
         $user->setPlainPassword($data['password']);
         $user->setEmail($data['email']);
         $url = "http://www.gravatar.com/avatar/" . md5(strtolower(trim($user->getEmail()))) . "?d=identicon&s=200";
         $user->setPictureUrl($url);
         $existingGroup = $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\Group')->findOneByName('Admin');
         $user->addGroup($existingGroup);
         $this->entityManager->persist($user);
         $this->entityManager->flush();
     }
     return true;
 }