check current password before changing the password

This commit is contained in:
Tobias Diekershoff 2013-04-14 17:22:42 +02:00
parent d905f0a3e3
commit 5827db0ea3
3 changed files with 15 additions and 2 deletions

View file

@ -301,6 +301,7 @@ function settings_post(&$a) {
$newpass = $_POST['npassword']; $newpass = $_POST['npassword'];
$confirm = $_POST['confirm']; $confirm = $_POST['confirm'];
$oldpass = hash('whirlpool', $_POST['opassword']);
$err = false; $err = false;
if($newpass != $confirm ) { if($newpass != $confirm ) {
@ -313,6 +314,12 @@ function settings_post(&$a) {
$err = true; $err = true;
} }
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
if( $oldpass != $r[0]['password'] ) {
notice( t('Wrong password.') . EOL);
$err = true;
}
if(! $err) { if(! $err) {
$password = hash('whirlpool',$newpass); $password = hash('whirlpool',$newpass);
$r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d LIMIT 1", $r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d LIMIT 1",
@ -1045,6 +1052,8 @@ function settings_content(&$a) {
'$h_pass' => t('Password Settings'), '$h_pass' => t('Password Settings'),
'$password1'=> array('npassword', t('New Password:'), '', ''), '$password1'=> array('npassword', t('New Password:'), '', ''),
'$password2'=> array('confirm', t('Confirm:'), '', t('Leave password fields blank unless changing')), '$password2'=> array('confirm', t('Confirm:'), '', t('Leave password fields blank unless changing')),
'$password3'=> array('opassword', t('Current Password:'), '', t('Your current password to confirm the changes')),
'$password4'=> array('password', t('Password:'), '', t('Your current password to confirm the changes')),
'$oid_enable' => (! get_config('system','no_openid')), '$oid_enable' => (! get_config('system','no_openid')),
'$openid' => $openid_field, '$openid' => $openid_field,

View file

@ -9,6 +9,7 @@ $nickname_block
{{inc field_password.tpl with $field=$password1 }}{{endinc}} {{inc field_password.tpl with $field=$password1 }}{{endinc}}
{{inc field_password.tpl with $field=$password2 }}{{endinc}} {{inc field_password.tpl with $field=$password2 }}{{endinc}}
{{inc field_password.tpl with $field=$password3 }}{{endinc}}
{{ if $oid_enable }} {{ if $oid_enable }}
{{inc field_input.tpl with $field=$openid }}{{endinc}} {{inc field_input.tpl with $field=$openid }}{{endinc}}
@ -23,6 +24,7 @@ $nickname_block
{{inc field_input.tpl with $field=$username }}{{endinc}} {{inc field_input.tpl with $field=$username }}{{endinc}}
{{inc field_input.tpl with $field=$email }}{{endinc}} {{inc field_input.tpl with $field=$email }}{{endinc}}
{{inc field_password.tpl with $field=$password4 }}{{endinc}}
{{inc field_custom.tpl with $field=$timezone }}{{endinc}} {{inc field_custom.tpl with $field=$timezone }}{{endinc}}
{{inc field_input.tpl with $field=$defloc }}{{endinc}} {{inc field_input.tpl with $field=$defloc }}{{endinc}}
{{inc field_checkbox.tpl with $field=$allowloc }}{{endinc}} {{inc field_checkbox.tpl with $field=$allowloc }}{{endinc}}

View file

@ -14,6 +14,7 @@
{{include file="field_password.tpl" field=$password1}} {{include file="field_password.tpl" field=$password1}}
{{include file="field_password.tpl" field=$password2}} {{include file="field_password.tpl" field=$password2}}
{{include file="field_password.tpl" field=$password3}}
{{if $oid_enable}} {{if $oid_enable}}
{{include file="field_input.tpl" field=$openid}} {{include file="field_input.tpl" field=$openid}}
@ -28,6 +29,7 @@
{{include file="field_input.tpl" field=$username}} {{include file="field_input.tpl" field=$username}}
{{include file="field_input.tpl" field=$email}} {{include file="field_input.tpl" field=$email}}
{{include file="field_password.tpl" field=$password4}}
{{include file="field_custom.tpl" field=$timezone}} {{include file="field_custom.tpl" field=$timezone}}
{{include file="field_input.tpl" field=$defloc}} {{include file="field_input.tpl" field=$defloc}}
{{include file="field_checkbox.tpl" field=$allowloc}} {{include file="field_checkbox.tpl" field=$allowloc}}