13 use Symfony\Component\Console\Input\InputInterface;
14 use Symfony\Component\Console\Input\InputOption;
15 use Symfony\Component\Console\Output\OutputInterface;
16 use Symfony\Component\Console\Question\Question;
26 private $installerFactory;
31 private $validationRules;
39 $this->installerFactory = $installerFactory;
40 $this->validationRules = $validationRules;
41 parent::__construct();
51 $this->setName(
'admin:user:create')
52 ->setDescription(
'Creates an administrator')
65 protected function interact(InputInterface $input, OutputInterface
$output)
68 $questionHelper = $this->getHelper(
'question');
71 $question =
new Question(
'<question>Admin user:</question> ',
'');
72 $this->addNotEmptyValidator($question);
76 $questionHelper->ask($input,
$output, $question)
81 $question =
new Question(
'<question>Admin password:</question> ',
'');
82 $question->setHidden(
true);
85 $user = new \Magento\Framework\DataObject();
88 $validator = new \Magento\Framework\Validator\DataObject();
89 $this->validationRules->addPasswordRules($validator);
91 $validator->isValid(
$user);
92 foreach ($validator->getMessages() as
$message) {
101 $questionHelper->ask($input,
$output, $question)
106 $question =
new Question(
'<question>Admin email:</question> ',
'');
107 $this->addNotEmptyValidator($question);
111 $questionHelper->ask($input,
$output, $question)
116 $question =
new Question(
'<question>Admin first name:</question> ',
'');
117 $this->addNotEmptyValidator($question);
121 $questionHelper->ask($input,
$output, $question)
126 $question =
new Question(
'<question>Admin last name:</question> ',
'');
127 $this->addNotEmptyValidator($question);
131 $questionHelper->ask($input,
$output, $question)
142 private function addNotEmptyValidator(Question $question)
144 $question->setValidator(
function (
$value) {
146 throw new \Exception(
'The value cannot be empty');
160 $output->writeln(
'<error>' . implode(
'</error>' . PHP_EOL .
'<error>',
$errors) .
'</error>');
162 return \Magento\Framework\Console\Cli::RETURN_FAILURE;
165 $installer->installAdminUser($input->getOptions());
169 return \Magento\Framework\Console\Cli::RETURN_SUCCESS;
180 $requiredStr = (
$mode === InputOption::VALUE_REQUIRED ?
'(Required) ' :
'');
187 $requiredStr .
'Admin user' 193 $requiredStr .
'Admin password' 199 $requiredStr .
'Admin email' 205 $requiredStr .
'Admin first name' 211 $requiredStr .
'Admin last name' 225 $user = new \Magento\Framework\DataObject();
235 $validator = new \Magento\Framework\Validator\DataObject();
236 $this->validationRules->addUserInfoRules($validator);
237 $this->validationRules->addPasswordRules($validator);
239 if (!$validator->isValid(
$user)) {
getOptionsList($mode=InputOption::VALUE_REQUIRED)
__construct(InstallerFactory $installerFactory, UserValidationRules $validationRules)
if($exist=($block->getProductCollection() && $block->getProductCollection() ->getSize())) $mode
validate(InputInterface $input)
execute(InputInterface $input, OutputInterface $output)