From 950f912426970a444e5282902655a5229f9c9f7e Mon Sep 17 00:00:00 2001 From: Alex Buckley Date: Wed, 6 Apr 2022 09:33:12 +1200 Subject: [PATCH] Bug 23538: Email library when new patron self-registers Test plan: 1. Apply all patches 2. Update database 3. Restart services 4. Set email addresses in: - KohaAdminEmailAddress syspref - EmailAddressForPatronRegistrations syspref - Email address in the library branch 5. Enable PatronSelfRegistration syspref 6. Test the following use cases: - EmailPatronRegistrations syspref = 'none'. Submit OPAC registration. = OUTCOME: Confirm no OPAC_REG notice in message_queue table Signed-off-by: David Nind Signed-off-by: Katrin Fischer --- Koha/Patron.pm | 51 +++++++++++++++++++ ...lAddressForPatronRegistrations_sysprefs.pl | 19 ++++--- .../mysql/en/mandatory/sample_notices.yml | 19 ++++--- opac/opac-memberentry.pl | 7 +++ opac/opac-registration-verify.pl | 6 +++ 5 files changed, 82 insertions(+), 20 deletions(-) diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 8031257304..8d2cf1fe44 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -2108,6 +2108,57 @@ sub account_balance { return $self->account->balance; } +=head3 notify_library_of_registration + +$patron->notify_library_of_registration( $email_patron_registrations ); + +Send patron registration email to library if EmailPatronRegistrations system preference is enabled. + +=cut + +sub notify_library_of_registration { + my ( $self, $email_patron_registrations ) = @_; + + if ( + my $letter = C4::Letters::GetPreparedLetter( + module => 'members', + letter_code => 'OPAC_REG', + branchcode => $self->branchcode, + lang => $self->lang || 'default', + tables => { + 'borrowers' => $self->borrowernumber + }, + ) + ) { + my $to_address; + if ( $email_patron_registrations eq "BranchEmailAddress" ) { + my $library = Koha::Libraries->find( $self->branchcode ); + $to_address = $library->inbound_email_address; + } + elsif ( $email_patron_registrations eq "KohaAdminEmailAddress" ) { + $to_address = C4::Context->preference('ReplytoDefault') + || C4::Context->preference('KohaAdminEmailAddress'); + } + else { + $to_address = + C4::Context->preference('EmailAddressForPatronRegistrations') + || C4::Context->preference('ReplytoDefault') + || C4::Context->preference('KohaAdminEmailAddress'); + } + + my $message_id = C4::Letters::EnqueueLetter( + { + letter => $letter, + borrowernumber => $self->borrowernumber, + to_address => $to_address, + message_transport_type => 'email' + } + ) or warn "can't enqueue letter $letter"; + if ( $message_id ) { + return 1; + } + } +} =head3 has_messaging_preference diff --git a/installer/data/mysql/atomicupdate/bug23538-add_EmailPatronRegistrations_and_EmailAddressForPatronRegistrations_sysprefs.pl b/installer/data/mysql/atomicupdate/bug23538-add_EmailPatronRegistrations_and_EmailAddressForPatronRegistrations_sysprefs.pl index 61ee73395e..55082df006 100755 --- a/installer/data/mysql/atomicupdate/bug23538-add_EmailPatronRegistrations_and_EmailAddressForPatronRegistrations_sysprefs.pl +++ b/installer/data/mysql/atomicupdate/bug23538-add_EmailPatronRegistrations_and_EmailAddressForPatronRegistrations_sysprefs.pl @@ -13,16 +13,15 @@ return { '

New OPAC self-registration

Self-registration made by

    -
  • <> <>
  • -
  • Physical address: <> <> <> <>, <>, <> <>, <>
  • -
  • Email: <>
  • -
  • Phone: <>
  • -
  • Mobile: <>
  • -
  • Fax: <>
  • -
  • Secondary email: <>
  • -
  • Secondary phone:<>
  • -
  • Home library: <>
  • -
  • Temporary patron category: <>
  • +
  • <> <>
  • +
  • Email: <>
  • +
  • Phone: <>
  • +
  • Mobile: <>
  • +
  • Fax: <>
  • +
  • Secondary email: <>
  • +
  • Secondary phone:<>
  • +
  • Home library: <>
  • +
  • Patron category: <>

', 'email', 'default') }); }, diff --git a/installer/data/mysql/en/mandatory/sample_notices.yml b/installer/data/mysql/en/mandatory/sample_notices.yml index b6c329715d..e10bc8a892 100644 --- a/installer/data/mysql/en/mandatory/sample_notices.yml +++ b/installer/data/mysql/en/mandatory/sample_notices.yml @@ -1744,15 +1744,14 @@ tables: - "

New OPAC self-registration

" - "

Self-registration made by

" - "
    " - - "
  • <> <>
  • " - - "
  • Physical address: <> <> <> <>, <>, <> <>, <>
  • " - - "
  • Email: <>
  • " - - "
  • Phone: <>
  • " - - "
  • Mobile: <>
  • " - - "
  • Fax: <>
  • " - - "
  • Secondary email: <>
  • " - - "
  • Secondary phone:<>
  • " - - "
  • Home library: <>
  • " - - "
  • Temporary patron category: <>
  • " + - "
  • <> <>
  • " + - "
  • Email: <>
  • " + - "
  • Phone: <>
  • " + - "
  • Mobile: <>
  • " + - "
  • Fax: <>
  • " + - "
  • Secondary email: <>
  • " + - "
  • Secondary phone:<>
  • " + - "
  • Home library: <>
  • " + - "
  • Temporary patron category: <>
  • " - "
" - "

" diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl index f456362c3a..7ae7f343fa 100755 --- a/opac/opac-memberentry.pl +++ b/opac/opac-memberentry.pl @@ -275,6 +275,13 @@ if ( $action eq 'create' ) { }; } } + + # Notify library of new patron registration + my $notify_library = C4::Context->preference('EmailPatronRegistrations'); + if ($notify_library) { + $patron->notify_library_of_registration($notify_library); + } + } else { # FIXME Handle possible errors here } diff --git a/opac/opac-registration-verify.pl b/opac/opac-registration-verify.pl index 73ff55e6e5..673507ab3e 100755 --- a/opac/opac-registration-verify.pl +++ b/opac/opac-registration-verify.pl @@ -117,6 +117,12 @@ if ( } } + # Notify library of new patron registration + my $notify_library = C4::Context->preference("EmailPatronRegistrations"); + if ($notify_library) { + $patron->notify_library_of_registration($notify_library); + } + $template->param( PatronSelfRegistrationAdditionalInstructions => C4::Context->preference( -- 2.30.2