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
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');
}
- 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);
$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;
}
}