Update usages of User::updatePassword

- Add password rules in mod/settings display
This commit is contained in:
Hypolite Petovan 2019-01-01 01:09:44 -05:00
parent 58adb5b431
commit 61664ee659
2 changed files with 25 additions and 40 deletions

View file

@ -391,35 +391,23 @@ function settings_post(App $a)
$newpass = $_POST['password'];
$confirm = $_POST['confirm'];
$err = false;
if ($newpass != $confirm) {
notice(L10n::t('Passwords do not match. Password unchanged.') . EOL);
$err = true;
}
if (empty($newpass) || empty($confirm)) {
notice(L10n::t('Empty passwords are not allowed. Password unchanged.') . EOL);
$err = true;
}
if (!Config::get('system', 'disable_password_exposed', false) && User::isPasswordExposed($newpass)) {
notice(L10n::t('The new password has been exposed in a public data dump, please choose another.') . EOL);
$err = true;
}
// check if the old password was supplied correctly before changing it to the new value
if (!User::authenticate(intval(local_user()), $_POST['opassword'])) {
notice(L10n::t('Wrong password.') . EOL);
$err = true;
}
if (!$err) {
$result = User::updatePassword(local_user(), $newpass);
if (DBA::isResult($result)) {
info(L10n::t('Password changed.') . EOL);
} else {
notice(L10n::t('Password update failed. Please try again.') . EOL);
try {
if ($newpass != $confirm) {
throw new Exception(L10n::t('Passwords do not match.'));
}
// check if the old password was supplied correctly before changing it to the new value
User::getIdFromPasswordAuthentication(local_user(), $_POST['opassword']);
$result = User::updatePassword(local_user(), $newpass);
if (!DBA::isResult($result)) {
throw new Exception(L10n::t('Password update failed. Please try again.'));
}
info(L10n::t('Password changed.'));
} catch (Exception $e) {
notice($e->getMessage());
notice(L10n::t('Password unchanged.'));
}
}
@ -1193,7 +1181,7 @@ function settings_content(App $a)
'$nickname_block' => $prof_addr,
'$h_pass' => L10n::t('Password Settings'),
'$password1'=> ['password', L10n::t('New Password:'), '', ''],
'$password1'=> ['password', L10n::t('New Password:'), '', L10n::t('Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces and colon (:).')],
'$password2'=> ['confirm', L10n::t('Confirm:'), '', L10n::t('Leave password fields blank unless changing')],
'$password3'=> ['opassword', L10n::t('Current Password:'), '', L10n::t('Your current password to confirm the changes')],
'$password4'=> ['mpassword', L10n::t('Password:'), '', L10n::t('Your current password to confirm the changes')],

View file

@ -2,7 +2,6 @@
namespace Friendica\Core\Console;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\Model\User;
@ -74,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;
}
}