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;
$template->param(
action => $action,
- hidden => GetHiddenFields( $mandatory, 'registration' ),
+ hidden => GetHiddenFields( $mandatory, $action ),
mandatory => $mandatory,
libraries => \@libraries,
OPACPatronDetails => C4::Context->preference('OPACPatronDetails'),
$verification_token = md5_hex( time().{}.rand().{}.$$ );
}
- $borrower{password} = Koha::AuthUtils::generate_password unless $borrower{password};
+ $borrower{password} = Koha::AuthUtils::generate_password unless $borrower{password};
$borrower{verification_token} = $verification_token;
Koha::Patron::Modification->new( \%borrower )->store();
$template->param( OpacPasswordChange =>
C4::Context->preference('OpacPasswordChange') );
+ $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') ) {
);
}
- $template->param( password_cleartext => $password );
+ $template->param( password_cleartext => $patron->plain_text_password );
$template->param( borrower => $patron->unblessed );
} else {
# FIXME Handle possible errors here
$template->param(
borrower => $borrower,
guarantor => scalar Koha::Patrons->find($borrowernumber)->guarantor(),
- hidden => GetHiddenFields( $mandatory, 'modification' ),
+ hidden => GetHiddenFields( $mandatory, 'edit' ),
csrf_token => Koha::Token->new->generate_csrf({
session_id => scalar $cgi->cookie('CGISESSID'),
}),
my ( $mandatory, $action ) = @_;
my %hidden_fields;
- my $BorrowerUnwantedField = $action eq 'modification' ?
+ my $BorrowerUnwantedField = $action eq 'edit' || $action eq 'update' ?
C4::Context->preference( "PatronSelfModificationBorrowerUnwantedField" ) :
C4::Context->preference( "PatronSelfRegistrationBorrowerUnwantedField" );
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;
}