setDescription('Set user password in Phraseanet') ->addOption('user_id', null, InputOption::VALUE_REQUIRED, 'The id of user.') ->addOption('generate', null, InputOption::VALUE_NONE, 'Generate the password') ->addOption('password', null, InputOption::VALUE_OPTIONAL, 'The password') ->setHelp(''); return $this; } protected function doExecute(InputInterface $input, OutputInterface $output) { $dialog = $this->getHelperSet()->get('dialog'); $userRepository = $this->container['repo.users']; $userManipulator = $this->container['manipulator.user']; $user = $userRepository->find($input->getOption('user_id')); $password = $input->getOption('password'); $generate = $input->getOption('generate'); if ($user === null) { $output->writeln('Not found User.'); return 0; } if ($generate) { $password = $this->container['random.medium']->generateString(64); } else { if (!$password) { $output->writeln('--password option not specified'); return 0; } } do { $continue = mb_strtolower($dialog->ask($output, 'Do you want really set password to this user? (y/N)', 'N')); } while (!in_array($continue, ['y', 'n'])); if ($continue !== 'y') { $output->writeln('Aborting !'); return; } $userManipulator->setPassword($user,$password); $output->writeln('New password: ' . $password . ''); return 0; } }