Bugzilla – Attachment 75111 Details for
Bug 20356
Add EmailSMSSendDriverFromAddress system preference for overriding Email SMS send driver from address
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 20356: Add EmailSMSSendDriverFromAddress system preference
Bug-20356-Add-EmailSMSSendDriverFromAddress-system.patch (text/plain), 6.86 KB, created by
David Gustafsson
on 2018-05-07 12:12:19 UTC
(
hide
)
Description:
Bug 20356: Add EmailSMSSendDriverFromAddress system preference
Filename:
MIME Type:
Creator:
David Gustafsson
Created:
2018-05-07 12:12:19 UTC
Size:
6.86 KB
patch
obsolete
>From 871acce6f89f192ef134e3f7e06f0d5b8f720e62 Mon Sep 17 00:00:00 2001 >From: David Gustafsson <david.gustafsson@ub.gu.se> >Date: Wed, 7 Mar 2018 16:40:07 +0100 >Subject: [PATCH] Bug 20356: Add EmailSMSSendDriverFromAddress system > preference > >Add EmailSMSSendDriverFromAddress system preference for overriding Email >SMS send driver from address. > >How to test: >1) Run tests in t/db_dependent/Letters.t >2) All tests should pass > >Sponsored-by: Gothenburg University Library >--- > C4/Letters.pm | 16 ++++++++- > ...6-add-syspref-EmailSMSSendDriverFromAddress.sql | 1 + > .../prog/en/modules/admin/preferences/patrons.pref | 3 ++ > t/db_dependent/Letters.t | 39 +++++++++++++++++++--- > 4 files changed, 53 insertions(+), 6 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_20356-add-syspref-EmailSMSSendDriverFromAddress.sql > >diff --git a/C4/Letters.pm b/C4/Letters.pm >index 52db4d0ac6..560776c93c 100644 >--- a/C4/Letters.pm >+++ b/C4/Letters.pm >@@ -993,7 +993,15 @@ sub SendQueuedMessages { > } > $message->{to_address} = $patron->smsalertnumber; #Sometime this is set to email - sms should always use smsalertnumber > $message->{to_address} .= '@' . $sms_provider->domain(); >- _update_message_to_address($message->{'message_id'},$message->{to_address}); >+ >+ # Check for possible from_address override >+ my $from_address = C4::Context->preference('EmailSMSSendDriverFromAddress'); >+ if ($from_address && $message->{from_address} ne $from_address) { >+ $message->{from_address} = $from_address; >+ _update_message_from_address($message->{'message_id'}, $message->{from_address}); >+ } >+ >+ _update_message_to_address($message->{'message_id'}, $message->{to_address}); > _send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} ); > } else { > _send_message_by_sms( $message ); >@@ -1388,6 +1396,12 @@ sub _update_message_to_address { > $dbh->do('UPDATE message_queue SET to_address=? WHERE message_id=?',undef,($to,$id)); > } > >+sub _update_message_from_address { >+ my ($message_id, $from_address) = @_; >+ my $dbh = C4::Context->dbh(); >+ $dbh->do('UPDATE message_queue SET from_address = ? WHERE message_id = ?', undef, ($from_address, $message_id)); >+} >+ > sub _set_message_status { > my $params = shift or return; > >diff --git a/installer/data/mysql/atomicupdate/bug_20356-add-syspref-EmailSMSSendDriverFromAddress.sql b/installer/data/mysql/atomicupdate/bug_20356-add-syspref-EmailSMSSendDriverFromAddress.sql >new file mode 100644 >index 0000000000..e5636c3e87 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_20356-add-syspref-EmailSMSSendDriverFromAddress.sql >@@ -0,0 +1 @@ >+INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type`) VALUES ('EmailSMSSendDriverFromAddress', '', '', 'Email SMS send driver from address override', 'Free'); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >index 348e1dd9ed..11a9578369 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >@@ -128,6 +128,9 @@ Patrons: > - pref: SMSSendUsername > - "and a password" > - pref: SMSSendPassword >+ - ". Override from address with" >+ - pref: EmailSMSSendDriverFromAddress >+ - "for emails sent using \"Email\" send driver." > - > - pref: uppercasesurnames > choices: >diff --git a/t/db_dependent/Letters.t b/t/db_dependent/Letters.t >index 6440dc5c0a..669d74127b 100644 >--- a/t/db_dependent/Letters.t >+++ b/t/db_dependent/Letters.t >@@ -597,8 +597,11 @@ subtest 'TranslateNotices' => sub { > > subtest 'SendQueuedMessages' => sub { > >- plan tests => 4; >+ plan tests => 6; >+ > t::lib::Mocks::mock_preference( 'SMSSendDriver', 'Email' ); >+ t::lib::Mocks::mock_preference('EmailSMSSendDriverFromAddress', ''); >+ > my $patron = Koha::Patrons->find($borrowernumber); > $dbh->do(q| > INSERT INTO message_queue(borrowernumber, subject, content, message_transport_type, status, letter_code) >@@ -612,11 +615,37 @@ subtest 'SendQueuedMessages' => sub { > ModMember( borrowernumber => $borrowernumber, smsalertnumber => '5555555555', sms_provider_id => $sms_pro->id() ); > $message_id = C4::Letters::EnqueueLetter($my_message); #using datas set around line 95 and forward > C4::Letters::SendQueuedMessages(); >- my $sms_message_address = $schema->resultset('MessageQueue')->search({ >+ >+ my $message = $schema->resultset('MessageQueue')->search({ > borrowernumber => $borrowernumber, > status => 'sent' >- })->next()->to_address(); >- is( $sms_message_address, '5555555555@kidclamp.rocks', 'SendQueuedMessages populates the to address correctly for SMS by email when to_address not set' ); >+ })->next(); >+ >+ is( $message->to_address(), '5555555555@kidclamp.rocks', 'SendQueuedMessages populates the to address correctly for SMS by email when to_address not set' ); >+ is( >+ $message->from_address(), >+ 'from@example.com', >+ 'SendQueuedMessages uses message queue item \"from address\" for SMS by email when EmailSMSSendDriverFromAddress system preference is not set' >+ ); >+ >+ $schema->resultset('MessageQueue')->search({borrowernumber => $borrowernumber, status => 'sent'})->delete(); #clear borrower queue >+ >+ t::lib::Mocks::mock_preference('EmailSMSSendDriverFromAddress', 'override@example.com'); >+ >+ $message_id = C4::Letters::EnqueueLetter($my_message); >+ C4::Letters::SendQueuedMessages(); >+ >+ $message = $schema->resultset('MessageQueue')->search({ >+ borrowernumber => $borrowernumber, >+ status => 'sent' >+ })->next(); >+ >+ is( >+ $message->from_address(), >+ 'override@example.com', >+ 'SendQueuedMessages uses EmailSMSSendDriverFromAddress value for SMS by email when EmailSMSSendDriverFromAddress is set' >+ ); >+ > $schema->resultset('MessageQueue')->search({borrowernumber => $borrowernumber,status => 'sent'})->delete(); #clear borrower queue > $my_message->{to_address} = 'fixme@kidclamp.iswrong'; > $message_id = C4::Letters::EnqueueLetter($my_message); >@@ -628,7 +657,7 @@ subtest 'SendQueuedMessages' => sub { > is ( $number_attempted, 0, 'There were no password reset messages for SendQueuedMessages to attempt.' ); > > C4::Letters::SendQueuedMessages(); >- $sms_message_address = $schema->resultset('MessageQueue')->search({ >+ my $sms_message_address = $schema->resultset('MessageQueue')->search({ > borrowernumber => $borrowernumber, > status => 'sent' > })->next()->to_address(); >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 20356
:
72517
|
72518
|
75111
|
79712
|
79760
|
81875