Bug 27860: Fix password recovery
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 5 Mar 2021 09:14:08 +0000 (10:14 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 16 Mar 2021 11:04:05 +0000 (12:04 +0100)
Same as the previous patch but for the password recovery feature.

Test plan:
1. Do not apply the patches
2. Set KohaAdminEmailAddress to an invalid email (root@localhost for
instance)
3. Use the password recovery feature
5. Boom (that must be fixed on a separate bug report)
6. Set KohaAdminEmailAddress to a valid email (root@example.org)
7. Use again the password recovery for a different user
8. Still Boom! (because it's processing the first invalid email)
9. Apply the patches, restart_all
10. Try again the password recovery
=> The email is sent!
Notice the change in DB, the first email is still there with status
"pending" and second email is sent!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Koha/Patron/Password/Recovery.pm

index 6640354..c2e2d27 100644 (file)
@@ -153,7 +153,7 @@ sub SendPasswordRecoveryEmail {
     my $library = $borrower->library;
     my $kohaEmail = $library->branchemail || C4::Context->preference('KohaAdminEmailAddress');  # send from patron's branch or Koha Admin
 
-    C4::Letters::EnqueueLetter(
+    my $message_id = C4::Letters::EnqueueLetter(
         {
             letter                 => $letter,
             borrowernumber         => $borrower->borrowernumber,
@@ -162,10 +162,10 @@ sub SendPasswordRecoveryEmail {
             message_transport_type => 'email',
         }
     );
-    my $num_letters_attempted = C4::Letters::SendQueuedMessages( {
-        borrowernumber => $borrower->borrowernumber,
-        letter_code => 'PASSWORD_RESET'
-    } );
+
+    my $num_letters_attempted =
+      C4::Letters::SendQueuedMessages( { message_id => $message_id } );
+
     return ($num_letters_attempted > 0);
 }