X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole%2FNewPassword.php;h=54d10af2077768edf4735a787efd3175ab6b9ef9;hb=a8d3a4d218b9c844b7a5d4134fb7f27d64be559d;hp=d44286d28f7cc21f82b3207a1ee4c47ca737a082;hpb=f7190ce9714be3e2edbc0915c854fc707cfbbcc6;p=friendica.git diff --git a/src/Core/Console/NewPassword.php b/src/Core/Console/NewPassword.php index d44286d28f..54d10af207 100644 --- a/src/Core/Console/NewPassword.php +++ b/src/Core/Console/NewPassword.php @@ -2,12 +2,11 @@ namespace Friendica\Core\Console; +use Friendica\Core\Config; use Friendica\Core\L10n; -use Friendica\Model\Contact; +use Friendica\Database\DBA; use Friendica\Model\User; -use Friendica\Core\Config; -use Friendica\Database\DBM; -use dba; +use RuntimeException; /** * @brief tool to set a new password for a user @@ -27,7 +26,7 @@ class NewPassword extends \Asika\SimpleConsole\Console $help = << [-h|--help|-?] [-v] + bin/console newpassword [] [-h|--help|-?] [-v] Description Creates a new password for a user without using the "forgot password" functionality. @@ -58,28 +57,33 @@ HELP; throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); } - require_once '.htconfig.php'; - $result = \dba::connect($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); - - if (!$result) { - throw new \RuntimeException('Unable to connect to database'); + if ($a->getMode()->isInstall()) { + throw new RuntimeException('Database isn\'t ready or populated yet'); } $nick = $this->getArgument(0); + + $user = DBA::selectFirst('user', ['uid'], ['nickname' => $nick]); + if (!DBA::isResult($user)) { + throw new RuntimeException(L10n::t('User not found')); + } + $password = $this->getArgument(1); + if (is_null($password)) { + $this->out(L10n::t('Enter new password: '), false); + $password = \Seld\CliPrompt\CliPrompt::hiddenPrompt(true); + } - $user = dba::selectFirst('user', ['uid'], ['nickname' => $nick]); - if (!DBM::is_result($user)) { - throw new \RuntimeException(L10n::t('User not found')); + if (!$password) { + throw new RuntimeException(L10n::t('Password can\'t be empty')); } if (!Config::get('system', 'disable_password_exposed', false) && User::isPasswordExposed($password)) { - throw new \RuntimeException(L10n::t('The new password has been exposed in a public data dump, please choose another.')); + throw new RuntimeException(L10n::t('The new password has been exposed in a public data dump, please choose another.')); } if (!User::updatePassword($user['uid'], $password)) { - throw new \RuntimeException(L10n::t('Password update failed. Please try again.')); + throw new RuntimeException(L10n::t('Password update failed. Please try again.')); } $this->out(L10n::t('Password changed.'));