From 34e17b5abad1bac29bc13155cedbe11b7d7fc1ba Mon Sep 17 00:00:00 2001 From: Brendan Lawlor Date: Fri, 12 Apr 2024 15:29:37 +0000 Subject: [PATCH] Bug 33832: Allow updating username without changing password on member-password.pl This patch updates the change password page on the staff interface to allow for changing the patron's username without changing the password. If the new password is an empty string we can skip setting the patron's password and sending the new password to the template. Test plan: 1. From a patron record tool bar click 'Change password' 2. Notice that if you try to change the user's name without also changing the password the page just reloads and nothing happens 3. Apply patch and restart_all 4. From the patron record click 'Change password' again 5. Set the user's new username and password eg. '1234Abc' and click 'Save' 6. Confirm that you can log in to the OPAC with the user 7. Return to the patron record and click 'Change password' again 8. This time change just the 'New username field' and click 'Save' 6. Notice that the username is updated 7. Confirm you can log into the OPAC with the new username and the original password '1234Abcd' 8. Make sure that the change password form still validates passwords for length and matching errors etc Signed-off-by: Owen Leonard Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer (cherry picked from commit e26fc0a3d5a83a7b22f0c3907a98d470b0e2443d) Signed-off-by: Fridolin Somers --- members/member-password.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/members/member-password.pl b/members/member-password.pl index d44f29d0f7..a1f50aaea2 100755 --- a/members/member-password.pl +++ b/members/member-password.pl @@ -55,7 +55,7 @@ if ( ( $patron_id ne $loggedinuser ) && ( $category_type eq 'S' ) ) { push( @errors, 'NOMATCH' ) if ( ( $newpassword && $newpassword2 ) && ( $newpassword ne $newpassword2 ) ); -if ( $newpassword and not @errors) { +if ( defined($newpassword) and not @errors) { output_and_exit( $input, $cookie, $template, 'wrong_csrf_token' ) unless Koha::Token->new->check_csrf({ @@ -64,10 +64,12 @@ if ( $newpassword and not @errors) { }); try { - $patron->set_password({ password => $newpassword }); + if ( $newpassword ne '' ) { + $patron->set_password({ password => $newpassword }); + $template->param( newpassword => $newpassword ); + } $patron->userid($new_user_id)->store if $new_user_id and $new_user_id ne $patron->userid; - $template->param( newpassword => $newpassword ); if ( $destination eq 'circ' ) { print $input->redirect("/cgi-bin/koha/circ/circulation.pl?findborrower=" . $patron->cardnumber); } -- 2.39.5