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;
    }
}