From 7d8d06508ec77ad7ba9054afb78801e3ae3d210f Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 12 Jul 2024 14:00:49 +0000 Subject: [PATCH] Bug 37339: Set messaging preferences from default on self registration The change on bug 30318 prevented setting the default messaging preferences when none were passed. Self registration relied on this for setting borrower preferences from the defaults. This patch removes the call to handle_form_action and replaces it with a call to: SetMessagingPreferencesFromDefault To test: 1 - Ensure self registration is enabled 2 - Set default messaging preferences for the self registration category 3 - Self register a patron from the OPAC, confirm defaults not set 4 - Apply patch, restart all 5 - Self register a patron 6 - Confirm defaults have been set 7 - Enable PatronSelfRegistrationVerifyByEmail 8 - Self register a patron on OPAC with an email 9 - Find the email and grab the verification link (unless you have emails enabled) SELECT * FROM message_queue; 10 - Visit the link and confirm registration 11 - Confirm messaging defaults are set Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer (cherry picked from commit 2accac5fd9a210c9aa0107c47522c7393b257c8c) Signed-off-by: Lucas Gass (cherry picked from commit 1d72bfe3d2ce95da35b966960efb2c73679226c2) Signed-off-by: Fridolin Somers --- opac/opac-memberentry.pl | 12 +++--------- opac/opac-registration-verify.pl | 4 +++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl index cb64018396..687e6ad4ea 100755 --- a/opac/opac-memberentry.pl +++ b/opac/opac-memberentry.pl @@ -29,6 +29,7 @@ use C4::Output qw( output_html_with_http_headers ); use C4::Context; use C4::Letters qw( GetPreparedLetter EnqueueLetter SendQueuedMessages ); use C4::Form::MessagingPreferences; +use C4::Members::Messaging qw( SetMessagingPreferencesFromDefaults ); use Koha::AuthUtils; use Koha::Patrons; use Koha::Patron::Consent; @@ -231,6 +232,8 @@ if ( $action eq 'create' ) { try { $patron = Koha::Patron->new( \%borrower )->store; Koha::Patron::Consent->new({ borrowernumber => $patron->borrowernumber, type => 'GDPR_PROCESSING', given_on => $consent_dt })->store if $patron && $consent_dt; + C4::Members::Messaging::SetMessagingPreferencesFromDefaults( + { borrowernumber => $patron->borrowernumber, categorycode => $patron->categorycode } ); } catch { my $type = ref($_); my $info = "$_"; @@ -250,15 +253,6 @@ if ( $action eq 'create' ) { if ( $patron ) { $patron->extended_attributes->filter_by_branch_limitations->delete; $patron->extended_attributes($attributes); - if ( C4::Context->preference('EnhancedMessagingPreferences') ) { - C4::Form::MessagingPreferences::handle_form_action( - $cgi, - { borrowernumber => $patron->borrowernumber }, - $template, - 1, - $PatronSelfRegistrationDefaultCategory - ); - } $template->param( password_cleartext => $patron->plain_text_password ); $template->param( borrower => $patron->unblessed ); diff --git a/opac/opac-registration-verify.pl b/opac/opac-registration-verify.pl index 7acbd9d229..82c3fb6ed3 100755 --- a/opac/opac-registration-verify.pl +++ b/opac/opac-registration-verify.pl @@ -25,6 +25,7 @@ use C4::Context; use C4::Output qw( output_html_with_http_headers ); use C4::Letters qw( GetPreparedLetter EnqueueLetter SendQueuedMessages ); use C4::Members; +use C4::Members::Messaging qw( SetMessagingPreferencesFromDefaults ); use C4::Form::MessagingPreferences; use Koha::AuthUtils; use Koha::Patrons; @@ -90,6 +91,8 @@ elsif ( $rego_found try { $patron = Koha::Patron->new( $patron_attrs )->store; Koha::Patron::Consent->new({ borrowernumber => $patron->borrowernumber, type => 'GDPR_PROCESSING', given_on => $consent_dt })->store if $patron && $consent_dt; + C4::Members::Messaging::SetMessagingPreferencesFromDefaults( + { borrowernumber => $patron->borrowernumber, categorycode => $patron->categorycode } ); } catch { $error_type = ref($_); $error_info = "$_"; @@ -112,7 +115,6 @@ elsif ( $rego_found } ); $template->param( "confirmed" => 1 ); - C4::Form::MessagingPreferences::handle_form_action($cgi, { borrowernumber => $patron->borrowernumber }, $template, 1, C4::Context->preference('PatronSelfRegistrationDefaultCategory') ) if C4::Context->preference('EnhancedMessagingPreferences'); $template->param( password_cleartext => $patron->plain_text_password ); $template->param( borrower => $patron ); -- 2.39.5