use Modern::Perl;
use C4::Context;
use C4::Letters;
-use Crypt::Eksblowfish::Bcrypt qw(en_base64);
-
-use vars qw(@ISA @EXPORT);
+use Crypt::Eksblowfish::Bcrypt qw( en_base64 );
+use Koha::DateUtils qw( dt_from_string );
+our (@ISA, @EXPORT_OK);
BEGIN {
require Exporter;
@ISA = qw(Exporter);
- push @EXPORT, qw(
+ @EXPORT_OK = qw(
&ValidateBorrowernumber
&SendPasswordRecoveryEmail
&GetValidLinkInfo
&CompletePasswordRecovery
+ &DeleteExpiredPasswordRecovery
);
}
},
{ columns => 'borrowernumber' }
);
-
if ( $rs->next ) {
return 1;
}
-
return 0;
}
# insert into database
my $expirydate =
- DateTime->now( time_zone => C4::Context->tz() )->add( days => 2 );
+ dt_from_string()->add( days => 2 );
if ($update) {
my $rs =
$schema->resultset('BorrowerPasswordRecovery')
module => 'members',
letter_code => 'PASSWORD_RESET',
branchcode => $borrower->branchcode,
+ lang => $borrower->lang,
substitute =>
{ passwordreseturl => $uuidLink, user => $borrower->userid },
);
- # define to/from emails
- my $kohaEmail = C4::Context->preference('KohaAdminEmailAddress'); # from
+ # define from emails
+ my $library = $borrower->library;
+ my $kohaEmail = $library->from_email_address; # send from patron's branch or Koha Admin
- C4::Letters::EnqueueLetter(
+ my $message_id = C4::Letters::EnqueueLetter(
{
letter => $letter,
borrowernumber => $borrower->borrowernumber,
}
);
- return 1;
+ my $num_letters_attempted =
+ C4::Letters::SendQueuedMessages( { message_id => $message_id } );
+
+ return ($num_letters_attempted > 0);
}
=head2 CompletePasswordRecovery
return $entry->delete();
}
+=head2 DeleteExpiredPasswordRecovery
+
+ $bool = DeleteExpiredPasswordRecovery($borrowernumber)
+
+ Deletes an expired password recovery entry.
+
+=cut
+
+sub DeleteExpiredPasswordRecovery {
+ my $borrower_number = shift;
+ my $model =
+ Koha::Database->new->schema->resultset('BorrowerPasswordRecovery');
+ my $entry = $model->search(
+ { borrowernumber => $borrower_number } );
+ return $entry->delete();
+}
+
+
END { } # module clean-up code here (global destructor)
1;