/** * @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 * @param RZ\Roadiz\Core\Entities\User $user * * @return RZ\Roadiz\Core\Entities\Role */ private function addUserRole($data, User $user) { if ($data['userId'] == $user->getId()) { $role = $this->getService('em')->find('RZ\\Roadiz\\Core\\Entities\\Role', $data['roleId']); $user->addRole($role); $this->getService('em')->flush(); return $role; } return null; }