diff --git a/core/command/resetadminpass.php b/core/command/resetadminpass.php deleted file mode 100644 index 6f42801061..0000000000 --- a/core/command/resetadminpass.php +++ /dev/null @@ -1,36 +0,0 @@ - - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -namespace OC\Core\Command; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Output\OutputInterface; - -class ResetAdminPass extends Command { - protected function configure() { - $this - ->setName('resetadminpass') - ->setDescription('Resets the password of the first user') - ->addArgument( - 'password', - InputArgument::REQUIRED, - 'Password to reset to' - ); - ; - } - - protected function execute(InputInterface $input, OutputInterface $output) { - $password = $input->getArgument('password'); - $query = \OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users` LIMIT 1'); - $username = $query->execute()->fetchOne(); - \OC_User::setPassword($username, $password); - $output->writeln("Successfully reset password for " . $username . " to " . $password); - } -} diff --git a/core/command/resetpassword.php b/core/command/resetpassword.php new file mode 100644 index 0000000000..fa91d0a73a --- /dev/null +++ b/core/command/resetpassword.php @@ -0,0 +1,52 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Command; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Output\OutputInterface; + +class ResetPassword extends Command { + protected function configure() { + $this + ->setName('resetpassword') + ->setDescription('Resets the password of the named user') + ->addArgument( + 'user', + InputArgument::REQUIRED, + 'Username to reset password' + ); + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) { + $username = $input->getArgument('user'); + if ($input->isInteractive()) { + $dialog = $this->getHelperSet()->get('dialog'); + $password = $dialog->askHiddenResponse( + $output, + 'Enter a new password: ', + false + ); + $dialog = $this->getHelperSet()->get('dialog'); + $confirm = $dialog->askHiddenResponse( + $output, + 'Confirm the new password: ', + false + ); + } + if ($password === $confirm) { + \OC_User::setPassword($username, $password); + $output->writeln("Successfully reset password for " . $username); + } else { + $output->writeln("Passwords did not match!"); + } + } +} diff --git a/core/register_command.php b/core/register_command.php index ef5456a1bd..44d7dbccba 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -10,7 +10,7 @@ $application->add(new OC\Core\Command\Status); $application->add(new OC\Core\Command\Db\GenerateChangeScript()); $application->add(new OC\Core\Command\Upgrade()); -$application->add(new OC\Core\Command\ResetAdminPass()); +$application->add(new OC\Core\Command\ResetPassword()); $application->add(new OC\Core\Command\Maintenance\SingleUser()); $application->add(new OC\Core\Command\App\Disable()); $application->add(new OC\Core\Command\App\Enable());