[% END %]
[% END %]
- [% UNLESS action == 'edit' %]
+ [% IF Koha.Preference('GDPR_Policy') && action != 'edit' %]
+ <fieldset class="rows" id="memberentry_gdpr_consent">
+ <legend>GDPR consent</legend>
+ <ol>
+ <li>
+ <label></label><span><input type="checkbox" name="borrower_gdpr_proc_consent" value="agreed"> I agree with your processing of my personal data as outlined in the <a target="_blank" href="[% PrivacyPolicyURL %]">privacy policy</a>. <span class="required">Required</span></span>
+ </li>
+ </ol>
+ </fieldset>
+ [% END %]
+
+ [% UNLESS action == 'edit' %]
<fieldset class="rows" id="memberentry_captcha">
+ <legend>Verification</legend>
<ol>
<li>
use C4::Form::MessagingPreferences;
use Koha::AuthUtils;
use Koha::Patrons;
+use Koha::Patron::Consent;
use Koha::Patron::Modification;
use Koha::Patron::Modifications;
use C4::Scrubber;
$borrower{categorycode} ||= C4::Context->preference('PatronSelfRegistrationDefaultCategory');
$borrower{password} ||= Koha::AuthUtils::generate_password;
+ my $consent_dt = delete $borrower{gdpr_proc_consent};
my $patron = Koha::Patron->new( \%borrower )->store;
+ Koha::Patron::Consent->new({ borrowernumber => $patron->borrowernumber, type => 'GDPR_PROCESSING', given_on => $consent_dt })->store if $consent_dt;
if ( $patron ) {
C4::Members::Attributes::SetBorrowerAttributes( $patron->borrowernumber, $attributes );
if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
C4::Context->preference("PatronSelfRegistrationBorrowerMandatoryField");
my @fields = split( /\|/, $BorrowerMandatoryField );
+ push @fields, 'gdpr_proc_consent' if C4::Context->preference('GDPR_Policy');
foreach (@fields) {
$mandatory_fields{$_} = 1;
$borrower{'dateofbirth'} = undef;
}
+ # Replace checkbox 'agreed' by datetime in gdpr_proc_consent
+ $borrower{gdpr_proc_consent} = dt_from_string if $borrower{gdpr_proc_consent} && $borrower{gdpr_proc_consent} eq 'agreed';
+
return %borrower;
}
use C4::Form::MessagingPreferences;
use Koha::AuthUtils;
use Koha::Patrons;
+use Koha::Patron::Consent;
use Koha::Patron::Modifications;
my $cgi = new CGI;
my $patron_attrs = $m->unblessed;
$patron_attrs->{password} ||= Koha::AuthUtils::generate_password;
-
+ my $consent_dt = delete $patron_attrs->{gdpr_proc_consent};
$patron_attrs->{categorycode} ||= C4::Context->preference('PatronSelfRegistrationDefaultCategory');
delete $patron_attrs->{timestamp};
delete $patron_attrs->{verification_token};
my $patron = Koha::Patron->new( $patron_attrs )->store;
+ Koha::Patron::Consent->new({ borrowernumber => $patron->borrowernumber, type => 'GDPR_PROCESSING', given_on => $consent_dt })->store if $consent_dt;
+
if ($patron) {
$m->delete();
C4::Form::MessagingPreferences::handle_form_action($cgi, { borrowernumber => $patron->borrowernumber }, $template, 1, C4::Context->preference('PatronSelfRegistrationDefaultCategory') ) if C4::Context->preference('EnhancedMessagingPreferences');