View | Details | Raw Unified | Return to bug 18595
Collapse All | Expand All

(-)a/C4/Auth_with_ldap.pm (-1 / +1 lines)
Lines 224-230 sub checkpw_ldap { Link Here
224
        }
224
        }
225
    } elsif ($config{replicate}) { # A2, C2
225
    } elsif ($config{replicate}) { # A2, C2
226
        $borrowernumber = C4::Members::AddMember(%borrower) or die "AddMember failed";
226
        $borrowernumber = C4::Members::AddMember(%borrower) or die "AddMember failed";
227
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrowernumber, categorycode => $borrower{'categorycode'} } );
227
        Koha::Patrons->find($borrowernumber)->set_default_messaging_preferences;
228
   } else {
228
   } else {
229
        return 0;   # B2, D2
229
        return 0;   # B2, D2
230
    }
230
    }
(-)a/C4/Auth_with_shibboleth.pm (-2 / +2 lines)
Lines 23-30 use C4::Debug; Link Here
23
use C4::Context;
23
use C4::Context;
24
use Koha::AuthUtils qw(get_script_name);
24
use Koha::AuthUtils qw(get_script_name);
25
use Koha::Database;
25
use Koha::Database;
26
use Koha::Patrons;
26
use C4::Members qw( AddMember_Auto );
27
use C4::Members qw( AddMember_Auto );
27
use C4::Members::Messaging;
28
use Carp;
28
use Carp;
29
use CGI;
29
use CGI;
30
30
Lines 123-129 sub _autocreate { Link Here
123
    }
123
    }
124
124
125
    %borrower = AddMember_Auto( %borrower );
125
    %borrower = AddMember_Auto( %borrower );
126
    C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower{'borrowernumber'}, categorycode => $borrower{'categorycode'} } );
126
    Koha::Patrons->find($borrower{'borrowernumber'})->set_default_messaging_preferences;
127
127
128
    return ( 1, $borrower{'cardnumber'}, $borrower{'userid'} );
128
    return ( 1, $borrower{'cardnumber'}, $borrower{'userid'} );
129
}
129
}
(-)a/C4/Form/MessagingPreferences.pm (-2 / +4 lines)
Lines 25-30 use C4::Context; Link Here
25
use C4::Members::Messaging;
25
use C4::Members::Messaging;
26
use C4::Debug;
26
use C4::Debug;
27
use Koha::Patron::Message::Preferences;
27
use Koha::Patron::Message::Preferences;
28
use Koha::Patrons;
28
29
29
use constant MAX_DAYS_IN_ADVANCE => 30;
30
use constant MAX_DAYS_IN_ADVANCE => 30;
30
31
Lines 105-112 sub handle_form_action { Link Here
105
    }
106
    }
106
    if (! $prefs_set && $insert){
107
    if (! $prefs_set && $insert){
107
        # this is new borrower, and we have no preferences set, use the defaults
108
        # this is new borrower, and we have no preferences set, use the defaults
108
	$target_params->{categorycode} = $categorycode;
109
        $target_params->{categorycode} = $categorycode;
109
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( $target_params );
110
        my $patron = Koha::Patrons->find($target_params->{'borrowernumber'});
111
        $patron->set_default_messaging_preferences if $patron;
110
    }
112
    }
111
    # show the success message
113
    # show the success message
112
    $template->param( settings_updated => 1 );
114
    $template->param( settings_updated => 1 );
(-)a/C4/Members/Messaging.pm (-35 lines)
Lines 182-222 END_SQL Link Here
182
    return;    
182
    return;    
183
}
183
}
184
184
185
=head2 SetMessagingPreferencesFromDefaults
186
187
  C4::Members::Messaging::SetMessagingPreferencesFromDefaults( { borrowernumber => $borrower->{'borrowernumber'}
188
                                                                categorycode   => 'CPL' } );
189
190
Given a borrowernumber and a patron category code (from the C<borrowernumber> and C<categorycode> keys
191
in the parameter hashref), replace all of the patron's current messaging preferences with
192
whatever defaults are defined for the patron category.
193
194
=cut
195
196
sub SetMessagingPreferencesFromDefaults {
197
    my $params = shift;
198
199
    foreach my $required ( qw( borrowernumber categorycode ) ) {
200
        unless ( exists $params->{ $required } ) {
201
            die "SetMessagingPreferencesFromDefaults called without required parameter: $required";
202
        }
203
    }
204
205
    my $messaging_options = Koha::Patron::Message::Preferences->get_options;
206
    OPTION: foreach my $option ( @$messaging_options ) {
207
        my $default_pref = GetMessagingPreferences( { categorycode => $params->{categorycode},
208
                                                      message_name => $option->{'message_name'} } );
209
        # FIXME - except for setting the borrowernumber, it really ought to be possible
210
        # to have the output of GetMessagingPreferences be able to be the input
211
        # to SetMessagingPreference
212
        my @message_transport_types = keys %{ $default_pref->{transports} };
213
        $default_pref->{message_attribute_id}    = $option->{'message_attribute_id'};
214
        $default_pref->{message_transport_types} = \@message_transport_types;
215
        $default_pref->{borrowernumber}          = $params->{borrowernumber};
216
        SetMessagingPreference( $default_pref );
217
    }
218
}
219
220
=head1 TABLES
185
=head1 TABLES
221
186
222
=head2 message_queue
187
=head2 message_queue
(-)a/misc/maintenance/borrowers-force-messaging-defaults.pl (-4 / +2 lines)
Lines 28-33 BEGIN { Link Here
28
28
29
use C4::Context;
29
use C4::Context;
30
use C4::Members::Messaging;
30
use C4::Members::Messaging;
31
use Koha::Patrons;
31
use Getopt::Long;
32
use Getopt::Long;
32
use Pod::Usage;
33
use Pod::Usage;
33
34
Lines 63-72 sub force_borrower_messaging_defaults { Link Here
63
    while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
64
    while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
64
        print "$borrowernumber: $categorycode\n";
65
        print "$borrowernumber: $categorycode\n";
65
        next unless $doit;
66
        next unless $doit;
66
        C4::Members::Messaging::SetMessagingPreferencesFromDefaults( {
67
        Koha::Patrons->find($borrowernumber)->set_default_messaging_preferences;
67
            borrowernumber => $borrowernumber,
68
            categorycode   => $categorycode,
69
        } );
70
    }
68
    }
71
    $dbh->commit();
69
    $dbh->commit();
72
}
70
}
(-)a/tools/import_borrowers.pl (-3 / +1 lines)
Lines 359-366 if ( $uploadborrowers && length($uploadborrowers) > 0 ) { Link Here
359
                }
359
                }
360
360
361
                if ($set_messaging_prefs) {
361
                if ($set_messaging_prefs) {
362
                    C4::Members::Messaging::SetMessagingPreferencesFromDefaults({ borrowernumber => $borrowernumber,
362
                    Koha::Patrons->find($borrowernumber)->set_default_messaging_preferences;
363
                                                                                  categorycode => $borrower{categorycode} });
364
                }
363
                }
365
364
366
                $imported++;
365
                $imported++;
367
- 

Return to bug 18595