aboutsummaryrefslogtreecommitdiffstats
path: root/core/Command/User/ResetPassword.php
diff options
context:
space:
mode:
Diffstat (limited to 'core/Command/User/ResetPassword.php')
-rw-r--r--core/Command/User/ResetPassword.php59
1 files changed, 19 insertions, 40 deletions
diff --git a/core/Command/User/ResetPassword.php b/core/Command/User/ResetPassword.php
index 174a9f4068d..0e8b1325770 100644
--- a/core/Command/User/ResetPassword.php
+++ b/core/Command/User/ResetPassword.php
@@ -1,33 +1,14 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Andreas Fischer <bantu@owncloud.com>
- * @author Christopher Schäpers <kondou@ts.unde.re>
- * @author Clark Tomlinson <fallen013@gmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Laurens Post <lkpost@scept.re>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Sujith H <sharidasan@owncloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OC\Core\Command\User;
use OC\Core\Command\Base;
+use OCP\App\IAppManager;
use OCP\IUser;
use OCP\IUserManager;
use Stecman\Component\Symfony\Console\BashCompletion\CompletionContext;
@@ -40,12 +21,10 @@ use Symfony\Component\Console\Question\ConfirmationQuestion;
use Symfony\Component\Console\Question\Question;
class ResetPassword extends Base {
-
- /** @var IUserManager */
- protected $userManager;
-
- public function __construct(IUserManager $userManager) {
- $this->userManager = $userManager;
+ public function __construct(
+ protected IUserManager $userManager,
+ private IAppManager $appManager,
+ ) {
parent::__construct();
}
@@ -56,13 +35,13 @@ class ResetPassword extends Base {
->addArgument(
'user',
InputArgument::REQUIRED,
- 'Username to reset password'
+ 'Login to reset password'
)
->addOption(
'password-from-env',
null,
InputOption::VALUE_NONE,
- 'read password from environment variable OC_PASS'
+ 'read password from environment variable NC_PASS/OC_PASS'
)
;
}
@@ -77,16 +56,16 @@ class ResetPassword extends Base {
}
if ($input->getOption('password-from-env')) {
- $password = getenv('OC_PASS');
+ $password = getenv('NC_PASS') ?: getenv('OC_PASS');
if (!$password) {
- $output->writeln('<error>--password-from-env given, but OC_PASS is empty!</error>');
+ $output->writeln('<error>--password-from-env given, but NC_PASS/OC_PASS is empty!</error>');
return 1;
}
} elseif ($input->isInteractive()) {
/** @var QuestionHelper $helper */
$helper = $this->getHelper('question');
- if (\OCP\App::isEnabled('encryption')) {
+ if ($this->appManager->isEnabledForUser('encryption', $user)) {
$output->writeln(
'<error>Warning: Resetting the password when using encryption will result in data loss!</error>'
);
@@ -102,7 +81,7 @@ class ResetPassword extends Base {
$password = $helper->ask($input, $output, $question);
if ($password === null) {
- $output->writeln("<error>Password cannot be empty!</error>");
+ $output->writeln('<error>Password cannot be empty!</error>');
return 1;
}
@@ -111,11 +90,11 @@ class ResetPassword extends Base {
$confirm = $helper->ask($input, $output, $question);
if ($password !== $confirm) {
- $output->writeln("<error>Passwords did not match!</error>");
+ $output->writeln('<error>Passwords did not match!</error>');
return 1;
}
} else {
- $output->writeln("<error>Interactive input or --password-from-env is needed for entering a new password!</error>");
+ $output->writeln('<error>Interactive input or --password-from-env is needed for entering a new password!</error>');
return 1;
}
@@ -128,9 +107,9 @@ class ResetPassword extends Base {
}
if ($success) {
- $output->writeln("<info>Successfully reset password for " . $username . "</info>");
+ $output->writeln('<info>Successfully reset password for ' . $username . '</info>');
} else {
- $output->writeln("<error>Error while resetting password!</error>");
+ $output->writeln('<error>Error while resetting password!</error>');
return 1;
}
return 0;