my $borrower = shift; # Koha::Patron
my $userEmail = shift; #to_address (the one specified in the request)
my $update = shift;
+ my $staff = shift // 0;
my $schema = Koha::Database->new->schema;
} while ( substr ( $uuid_str, -1, 1 ) eq '.' );
# insert into database
+ my $days = $staff ? 5 : 2;
my $expirydate =
- dt_from_string()->add( days => 2 );
+ dt_from_string()->add( days => $days );
if ($update) {
my $rs =
$schema->resultset('BorrowerPasswordRecovery')
# prepare the email
my $letter = C4::Letters::GetPreparedLetter(
module => 'members',
- letter_code => 'PASSWORD_RESET',
+ letter_code => $staff ? 'STAFF_PASSWORD_RESET' : 'PASSWORD_RESET',
branchcode => $borrower->branchcode,
lang => $borrower->lang,
substitute =>
<li><a id="sendwelcome" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=send_welcome">Send welcome email</a></li>
[% END %]
+ [% IF CAN_user_borrowers_edit_borrowers %]
+ <li><a id="resetpassword" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=send_password_reset">Send password reset</a></li>
+ [% END %]
+
[% IF CAN_user_borrowers_delete_borrowers %]
<li><a id="deletepatron" href="#">Delete</a></li>
[% ELSE %]
use C4::Letters qw( GetPreparedLetter EnqueueLetter );
use Koha::Patrons;
use Koha::Patron::Categories;
+use Koha::Patron::Password::Recovery qw( SendPasswordRecoveryEmail ValidateBorrowernumber );
my $input=CGI->new;
print $input->redirect("/cgi-bin/koha/members/notices.pl?borrowernumber=$borrowernumber");
}
+if ( $op eq 'send_password_reset' ) {
+
+ my $emailaddr = $patron->notice_email_address;
+
+ if ($emailaddr) {
+
+ # check if there's already a recovery in process
+ my $update = ValidateBorrowernumber( $patron->borrowernumber );
+
+ # send staff initiated password recovery
+ SendPasswordRecoveryEmail( $patron, $emailaddr, $update, 1 );
+ }
+
+ # redirect to self to avoid form submission on refresh
+ print $input->redirect(
+ "/cgi-bin/koha/members/notices.pl?borrowernumber=$borrowernumber");
+}
+
# Getting the messages
my $queued_messages = C4::Letters::GetQueuedMessages({borrowernumber => $borrowernumber});