From c56f81a201a2f7a0af48a3d7ad752c2251b071da Mon Sep 17 00:00:00 2001 From: Brendan Lawlor Date: Mon, 8 Apr 2024 14:00:21 +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: Esther --- .../prog/en/modules/members/member-password.tt | 4 +++- members/member-password.pl | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-password.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-password.tt index 418bd7eadd..3d52a7f7e0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-password.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-password.tt @@ -193,7 +193,9 @@ }); }); - [% PROCESS 'password_check.inc' new_password => 'newpassword', minPasswordLength => patron.category.effective_min_password_length, RequireStrongPassword => patron.category.effective_require_strong_password %] + [% IF new_password.defined %] + [% PROCESS 'password_check.inc' new_password => 'newpassword', minPasswordLength => patron.category.effective_min_password_length, RequireStrongPassword => patron.category.effective_require_strong_password %] + [% END %] [% END %] [% INCLUDE 'intranet-bottom.inc' %] diff --git a/members/member-password.pl b/members/member-password.pl index e2c56f0686..362257bcb2 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' && $newpassword.defined 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.30.2