Merge branch 'feature-admin-options'
This commit is contained in:
commit
38944fca1b
|
@ -53,7 +53,7 @@ class Factory
|
|||
{
|
||||
if (!isset($this->loadedStores[$store])) {
|
||||
$namespace = is_null($namespace) ? Config::getInstance()->get('b8.app.namespace') : $namespace;
|
||||
$class = $namespace . '\\Store\\' . $store . 'Store';
|
||||
$class = $namespace . '\\Store\\' . $store . 'Store';
|
||||
$obj = new $class();
|
||||
|
||||
$this->loadedStores[$store] = $obj;
|
||||
|
|
|
@ -3,9 +3,11 @@
|
|||
namespace PHPCensor\Command;
|
||||
|
||||
use PHPCensor\Service\UserService;
|
||||
use b8\Store\Factory;
|
||||
use PHPCensor\Store\UserStore;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Helper\QuestionHelper;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
|
@ -36,6 +38,11 @@ class CreateAdminCommand extends Command
|
|||
{
|
||||
$this
|
||||
->setName('php-censor:create-admin')
|
||||
|
||||
->addOption('admin-name', null, InputOption::VALUE_OPTIONAL, 'Admin name')
|
||||
->addOption('admin-password', null, InputOption::VALUE_OPTIONAL, 'Admin password')
|
||||
->addOption('admin-email', null, InputOption::VALUE_OPTIONAL, 'Admin email')
|
||||
|
||||
->setDescription('Create an admin user');
|
||||
}
|
||||
|
||||
|
@ -46,36 +53,45 @@ class CreateAdminCommand extends Command
|
|||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$userService = new UserService($this->userStore);
|
||||
|
||||
/** @var $helper QuestionHelper */
|
||||
$helper = $this->getHelperSet()->get('question');
|
||||
|
||||
$question = new Question('Admin email: ');
|
||||
$question->setValidator(function ($answer) {
|
||||
// Function to validate email address.
|
||||
$mailValidator = function ($answer) {
|
||||
if (!filter_var($answer, FILTER_VALIDATE_EMAIL)) {
|
||||
throw new \InvalidArgumentException('Must be a valid email address.');
|
||||
}
|
||||
|
||||
return $answer;
|
||||
});
|
||||
$adminEmail = $helper->ask($input, $output, $question);
|
||||
};
|
||||
|
||||
$question = new Question('Admin name: ');
|
||||
$adminName = $helper->ask($input, $output, $question);
|
||||
if ($adminEmail = $input->getOption('admin-email')) {
|
||||
$adminEmail = $mailValidator($adminEmail);
|
||||
} else {
|
||||
$questionEmail = new Question('Admin email: ');
|
||||
$adminEmail = $helper->ask($input, $output, $questionEmail);
|
||||
}
|
||||
|
||||
$question = new Question('Admin password: ');
|
||||
$question->setHidden(true);
|
||||
$question->setHiddenFallback(false);
|
||||
if (!$adminName = $input->getOption('admin-name')) {
|
||||
$questionName = new Question('Admin name: ');
|
||||
$adminName = $helper->ask($input, $output, $questionName);
|
||||
}
|
||||
|
||||
$adminPass = $helper->ask($input, $output, $question);
|
||||
if (!$adminPassword = $input->getOption('admin-password')) {
|
||||
$questionPassword = new Question('Admin password: ');
|
||||
$questionPassword->setHidden(true);
|
||||
$questionPassword->setHiddenFallback(false);
|
||||
$adminPassword = $helper->ask($input, $output, $questionPassword);
|
||||
}
|
||||
|
||||
try {
|
||||
$userService->createUser($adminName, $adminEmail, 'internal', json_encode(['type' => 'internal']), $adminPass, true);
|
||||
$userService = new UserService($this->userStore);
|
||||
$userService->createUser($adminName, $adminEmail, 'internal', json_encode(['type' => 'internal']), $adminPassword, true);
|
||||
|
||||
$output->writeln('<info>User account created!</info>');
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln(sprintf('<error>%s</error>', 'PHP Censor failed to create your admin account.'));
|
||||
$output->writeln(sprintf('<error>%s</error>', $e->getMessage()));
|
||||
} catch (\Exception $ex) {
|
||||
$output->writeln('<error>PHP Censor failed to create your admin account!</error>');
|
||||
$output->writeln('<error>' . $ex->getMessage() . '</error>');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -202,16 +202,16 @@ class InstallCommand extends Command
|
|||
$adminName = $helper->ask($input, $output, $questionName);
|
||||
}
|
||||
|
||||
if (!$adminPass = $input->getOption('admin-password')) {
|
||||
$questionPass = new Question('Admin password: ');
|
||||
$questionPass->setHidden(true);
|
||||
$questionPass->setHiddenFallback(false);
|
||||
$adminPass = $helper->ask($input, $output, $questionPass);
|
||||
if (!$adminPassword = $input->getOption('admin-password')) {
|
||||
$questionPassword = new Question('Admin password: ');
|
||||
$questionPassword->setHidden(true);
|
||||
$questionPassword->setHiddenFallback(false);
|
||||
$adminPassword = $helper->ask($input, $output, $questionPassword);
|
||||
}
|
||||
|
||||
$admin['email'] = $adminEmail;
|
||||
$admin['name'] = $adminName;
|
||||
$admin['password'] = $adminPass;
|
||||
$admin['password'] = $adminPassword;
|
||||
|
||||
return $admin;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue