namespace Friendica\Core\Console;
-use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\Model\User;
protected function doExecute()
{
- $a = get_app();
+ $a = \get_app();
if ($this->getOption('v')) {
$this->out('Class: ' . __CLASS__);
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
}
- if ($a->isInstallMode()) {
+ if ($a->getMode()->isInstall()) {
throw new RuntimeException('Database isn\'t ready or populated yet');
}
$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;
}
}