X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole%2FNewPassword.php;h=3cd96ad322bd5107be58c830b56b8d080000698c;hb=3aa77685fcccff9739384136b4894de43200fa8c;hp=f5698ba716ff62b1cf0e3258c2155436ca208769;hpb=c598bf7d8f5075526fadcfd329f6dd448533dfad;p=friendica.git diff --git a/src/Core/Console/NewPassword.php b/src/Core/Console/NewPassword.php index f5698ba716..3cd96ad322 100644 --- a/src/Core/Console/NewPassword.php +++ b/src/Core/Console/NewPassword.php @@ -3,11 +3,9 @@ namespace Friendica\Core\Console; 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 @@ -41,7 +39,7 @@ HELP; protected function doExecute() { - $a = get_app(); + $a = \get_app(); if ($this->getOption('v')) { $this->out('Class: ' . __CLASS__); @@ -58,19 +56,15 @@ 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 (!DBM::is_result($user)) { - throw new \RuntimeException(L10n::t('User not found')); + $user = DBA::selectFirst('user', ['uid'], ['nickname' => $nick]); + if (!DBA::isResult($user)) { + throw new RuntimeException(L10n::t('User not found')); } $password = $this->getArgument(1); @@ -79,20 +73,18 @@ HELP; $password = \Seld\CliPrompt\CliPrompt::hiddenPrompt(true); } - if (!$password) { - throw new \RuntimeException(L10n::t('Password can\'t be empty')); - } + try { + $result = User::updatePassword($user['uid'], $password); - 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.')); - } + if (!DBA::isResult($result)) { + throw new \Exception(L10n::t('Password update failed. Please try again.')); + } - if (!User::updatePassword($user['uid'], $password)) { - throw new \RuntimeException(L10n::t('Password update failed. Please try again.')); + $this->out(L10n::t('Password changed.')); + } catch (\Exception $e) { + throw new RuntimeException($e->getMessage(), $e->getCode(), $e); } - $this->out(L10n::t('Password changed.')); - return 0; } }