. ' .' );
}
else {
+ my $error_feedback =
+'The email address you are trying to use is not associated with a borrower at this library.';
my $auto_registration = C4::Context->preference('GoogleOpenIDConnectAutoRegister') // q{0};
my $borrower = Koha::Patrons->find( { email => $email } );
if (! $borrower && $auto_registration==1) {
- my $cardnumber = fixup_cardnumber();
my $firstname = $claims_json->{'given_name'} // q{};
my $surname = $claims_json->{'family_name'} // q{};
my $delimiter = $firstname ? q{.} : q{};
my $userid = $firstname . $delimiter . $surname;
my $categorycode = C4::Context->preference('GoogleOpenIDConnectDefaultCategory') // q{};
+ my $patron_category = Koha::Patron::Categories->find( $categorycode );
my $branchcode = C4::Context->preference('GoogleOpenIDConnectDefaultBranch') // q{};
- my $password = undef;
- my $borrowernumber = C4::Members::AddMember(
- cardnumber => $cardnumber,
- firstname => $firstname,
- surname => $surname,
- email => $email,
- categorycode => $categorycode,
- branchcode => $branchcode,
- userid => $userid,
- password => $password
- );
- $borrower = Koha::Patrons->find( {
- borrowernumber => $borrowernumber } );
+ my $library = Koha::Libraries->find( $branchcode );
+ if (defined $patron_category && defined $library) {
+ my $password = undef;
+ my $borrowernumber = C4::Members::AddMember(
+ firstname => $firstname,
+ surname => $surname,
+ email => $email,
+ categorycode => $categorycode,
+ branchcode => $branchcode,
+ userid => $userid,
+ password => $password
+ );
+ $borrower = Koha::Patrons->find( {
+ borrowernumber => $borrowernumber } );
+ } else {
+ $error_feedback = 'The GoogleOpenIDConnectDefaultBranch or GoogleOpenIDConnectDefaultCategory system preferences are not configured properly. Please contact the library with this error message.';
+ }
}
my ( $userid, $cookie, $session_id ) =
checkauth( $query, 1, {}, 'opac', $email );
if ($userid) { # A user with this email is registered in koha
+
+ #handle redirect to main.pl, for private opac
+ my $uri;
+ if (C4::Context->preference('OpacPublic') ) {
+ $uri = '/cgi-bin/koha/opac-user.pl';
+ } else {
+ $uri = '/cgi-bin/koha/opac-main.pl';
+ }
print $query->redirect(
- -uri => '/cgi-bin/koha/opac-user.pl',
+ -uri => $uri,
-cookie => $cookie
);
}
else {
- loginfailed( $query,
-'The email address you are trying to use is not associated with a borrower at this library.'
- );
+ loginfailed( $query, $error_feedback );
}
}
}