From 8e6a8d8ff104425309e0eefa66a3f80fb37f6e00 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 --- 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 e2c56f06868..085b81b4aee 100755 --- a/members/member-password.pl +++ b/members/member-password.pl @@ -55,13 +55,15 @@ if ( ( $patron_id ne $loggedinuser ) && ( $category_type eq 'S' ) ) { push( @errors, 'NOMATCH' ) if ( ( $newpassword && $newpassword2 ) && ( $newpassword ne $newpassword2 ) ); -if ( $op eq 'cud-update' && $newpassword and not @errors ) { +if ( $op eq 'cud-update' && defined($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.44.0