use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Command\Command;
-use Drupal\Console\Core\Command\Shared\CommandTrait;
+use Drupal\Console\Core\Command\Command;
use Drupal\Core\Password\PasswordInterface;
-use Drupal\Console\Command\Shared\ConfirmationTrait;
-use Drupal\Console\Core\Style\DrupalStyle;
class PasswordHashCommand extends Command
{
- use CommandTrait;
- use ConfirmationTrait;
-
/**
* @var PasswordInterface
*/
->setName('user:password:hash')
->setDescription($this->trans('commands.user.password.hash.description'))
->setHelp($this->trans('commands.user.password.hash.help'))
- ->addArgument('password', InputArgument::IS_ARRAY, $this->trans('commands.user.password.hash.options.password'));
+ ->addArgument(
+ 'password',
+ InputArgument::IS_ARRAY,
+ $this->trans('commands.user.password.hash.options.password')
+ )
+ ->setAliases(['uph']);
}
/**
* {@inheritdoc}
*/
- protected function execute(InputInterface $input, OutputInterface $output)
+ protected function interact(InputInterface $input, OutputInterface $output)
{
- $io = new DrupalStyle($input, $output);
+ $password = $input->getArgument('password');
+ if (!$password) {
+ $password = $this->getIo()->ask(
+ $this->trans('commands.user.password.hash.questions.password')
+ );
+ $input->setArgument('password', [$password]);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
$passwords = $input->getArgument('password');
$tableHeader = [
];
}
- $io->table($tableHeader, $tableRows, 'compact');
- }
-
- /**
- * {@inheritdoc}
- */
- protected function interact(InputInterface $input, OutputInterface $output)
- {
- $io = new DrupalStyle($input, $output);
-
- $passwords = $input->getArgument('password');
- if (!$passwords) {
- $passwords = [];
- while (true) {
- $password = $io->ask(
- $this->trans('commands.user.password.hash.questions.password'),
- '',
- function ($pass) use ($passwords, $io) {
- if (!empty($pass) || count($passwords) >= 1) {
- if ($pass == '') {
- return true;
- }
-
- return $pass;
- } else {
- $io->error(
- sprintf($this->trans('commands.user.password.hash.questions.invalid-pass'), $pass)
- );
-
- return false;
- }
- }
- );
-
- if ($password && !is_string($password)) {
- break;
- }
-
- if (is_string($password)) {
- $passwords[] = $password;
- }
- }
-
- $input->setArgument('password', $passwords);
- }
+ $this->getIo()->table($tableHeader, $tableRows, 'compact');
}
}