Add a confirmation password input field that must match the primary

password field in order for the update to succeed.  If there is no
data entered in the primary password field, the confirmation field is
ignored.

Addresses Trac Ticket #4
This commit is contained in:
Tim Almdal
2009-02-03 00:17:40 +00:00
parent ae254df7f7
commit eb56ee821f
3 changed files with 40 additions and 12 deletions

View File

@@ -28,19 +28,26 @@ class Users_Controller extends REST_Controller {
$form = user::get_edit_form($user);
$form->edit_user->password->rules("-required");
if ($form->validate()) {
// @todo: allow the user to change their name
// @todo: handle password changing gracefully
$user->full_name = $form->edit_user->full_name->value;
if ($form->edit_user->password->value) {
$user->password = $form->edit_user->password->value;
}
$user->email = $form->edit_user->email->value;
$user->url = $form->edit_user->url->value;
$user->save();
if ($form->edit_user->password->value &&
$form->edit_user->password->value != $form->edit_user->password2->value) {
$form->edit_user->password2->add_error("mistyped", 1);
print json_encode(
array("result" => "error",
"form" => $form->__toString()));
} else {
// @todo: allow the user to change their name
$user->full_name = $form->edit_user->full_name->value;
if ($form->edit_user->password->value) {
$user->password = $form->edit_user->password->value;
}
$user->email = $form->edit_user->email->value;
$user->url = $form->edit_user->url->value;
$user->save();
print json_encode(
array("result" => "success",
"resource" => url::site("users/{$user->id}")));
print json_encode(
array("result" => "success",
"resource" => url::site("users/{$user->id}")));
}
} else {
print json_encode(
array("result" => "error",