/** * @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; }
/** * @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; }