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

(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-registration-invalid.tt (+7 lines)
Lines 37-42 Link Here
37
                            <h1>Registration invalid!</h1>
37
                            <h1>Registration invalid!</h1>
38
38
39
                            <p>There were problems processing your registration. Please contact your library for help.</p>
39
                            <p>There were problems processing your registration. Please contact your library for help.</p>
40
                            [% IF error_type OR error_info %]
41
                                [% IF error_type == 'Koha::Exceptions::Patron::InvalidUserid' %]
42
                                    <p>Error: Userid is not valid</p>
43
                                [% ELSE %]
44
                                    <p>Error [% error_type %]: [% error_info %]</p>
45
                                [% END %]
46
                            [% END %]
40
                        </div>
47
                        </div>
41
                    </div> <!-- /#registration-confirmation-error -->
48
                    </div> <!-- /#registration-confirmation-error -->
42
                </div> <!-- /.col-lg-10/12 -->
49
                </div> <!-- /.col-lg-10/12 -->
(-)a/opac/opac-registration-verify.pl (-22 / +27 lines)
Lines 18-23 Link Here
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use CGI qw ( -utf8 );
20
use CGI qw ( -utf8 );
21
use Try::Tiny;
21
22
22
use C4::Auth qw( get_template_and_user );
23
use C4::Auth qw( get_template_and_user );
23
use C4::Output qw( output_html_with_http_headers );
24
use C4::Output qw( output_html_with_http_headers );
Lines 42-47 my $token = $cgi->param('token'); Link Here
42
my $m = Koha::Patron::Modifications->find( { verification_token => $token } );
43
my $m = Koha::Patron::Modifications->find( { verification_token => $token } );
43
44
44
my ( $template, $borrowernumber, $cookie );
45
my ( $template, $borrowernumber, $cookie );
46
my ( $error_type, $error_info );
45
47
46
if (
48
if (
47
    $m # The token exists and the email is unique if requested
49
    $m # The token exists and the email is unique if requested
Lines 51-65 if ( Link Here
51
    )
53
    )
52
  )
54
  )
53
{
55
{
54
    ( $template, $borrowernumber, $cookie ) = get_template_and_user(
55
        {
56
            template_name   => "opac-registration-confirmation.tt",
57
            type            => "opac",
58
            query           => $cgi,
59
            authnotrequired => 1,
60
        }
61
    );
62
63
    my $patron_attrs = $m->unblessed;
56
    my $patron_attrs = $m->unblessed;
64
    $patron_attrs->{password} ||= Koha::AuthUtils::generate_password(Koha::Patron::Categories->find($patron_attrs->{categorycode}));
57
    $patron_attrs->{password} ||= Koha::AuthUtils::generate_password(Koha::Patron::Categories->find($patron_attrs->{categorycode}));
65
    my $consent_dt = delete $patron_attrs->{gdpr_proc_consent};
58
    my $consent_dt = delete $patron_attrs->{gdpr_proc_consent};
Lines 68-76 if ( Link Here
68
    delete $patron_attrs->{verification_token};
61
    delete $patron_attrs->{verification_token};
69
    delete $patron_attrs->{changed_fields};
62
    delete $patron_attrs->{changed_fields};
70
    delete $patron_attrs->{extended_attributes};
63
    delete $patron_attrs->{extended_attributes};
71
    my $patron = Koha::Patron->new( $patron_attrs )->store;
72
64
73
    Koha::Patron::Consent->new({ borrowernumber => $patron->borrowernumber, type => 'GDPR_PROCESSING', given_on => $consent_dt })->store if $consent_dt;
65
    my $patron;
66
    try {
67
        $patron = Koha::Patron->new( $patron_attrs )->store;
68
        Koha::Patron::Consent->new({ borrowernumber => $patron->borrowernumber, type => 'GDPR_PROCESSING', given_on => $consent_dt })->store if $patron && $consent_dt;
69
    } catch {
70
        $error_type = ref($_);
71
        $error_info = "$_";
72
    };
74
73
75
    if ($patron) {
74
    if ($patron) {
76
        if( $m->extended_attributes ){
75
        if( $m->extended_attributes ){
Lines 80-85 if ( Link Here
80
        } else {
79
        } else {
81
            $m->delete();
80
            $m->delete();
82
        }
81
        }
82
        ( $template, $borrowernumber, $cookie ) = get_template_and_user(
83
            {
84
                template_name   => "opac-registration-confirmation.tt",
85
                type            => "opac",
86
                query           => $cgi,
87
                authnotrequired => 1,
88
            }
89
        );
83
        C4::Form::MessagingPreferences::handle_form_action($cgi, { borrowernumber => $patron->borrowernumber }, $template, 1, C4::Context->preference('PatronSelfRegistrationDefaultCategory') ) if C4::Context->preference('EnhancedMessagingPreferences');
90
        C4::Form::MessagingPreferences::handle_form_action($cgi, { borrowernumber => $patron->borrowernumber }, $template, 1, C4::Context->preference('PatronSelfRegistrationDefaultCategory') ) if C4::Context->preference('EnhancedMessagingPreferences');
84
91
85
        $template->param( password_cleartext => $patron->plain_text_password );
92
        $template->param( password_cleartext => $patron->plain_text_password );
Lines 132-148 if ( Link Here
132
        my ($theme, $news_lang, $availablethemes) = C4::Templates::themelanguage(C4::Context->config('opachtdocs'),'opac-registration-confirmation.tt','opac',$cgi);
139
        my ($theme, $news_lang, $availablethemes) = C4::Templates::themelanguage(C4::Context->config('opachtdocs'),'opac-registration-confirmation.tt','opac',$cgi);
133
        $template->param( news_lang => $news_lang );
140
        $template->param( news_lang => $news_lang );
134
    }
141
    }
135
136
}
142
}
137
else {
143
138
    ( $template, $borrowernumber, $cookie ) = get_template_and_user(
144
if( !$template ) { # Missing token, patron exception, etc.
139
        {
145
    ( $template, $borrowernumber, $cookie ) = get_template_and_user({
140
            template_name   => "opac-registration-invalid.tt",
146
        template_name   => "opac-registration-invalid.tt",
141
            type            => "opac",
147
        type            => "opac",
142
            query           => $cgi,
148
        query           => $cgi,
143
            authnotrequired => 1,
149
        authnotrequired => 1,
144
        }
150
    });
145
    );
151
    $template->param( error_type => $error_type, error_info => $error_info );
146
}
152
}
147
153
148
output_html_with_http_headers $cgi, $cookie, $template->output;
154
output_html_with_http_headers $cgi, $cookie, $template->output;
149
- 

Return to bug 32426