|
Lines 746-751
sub checkauth {
Link Here
|
| 746 |
my $authnotrequired = shift; |
746 |
my $authnotrequired = shift; |
| 747 |
my $flagsrequired = shift; |
747 |
my $flagsrequired = shift; |
| 748 |
my $type = shift; |
748 |
my $type = shift; |
|
|
749 |
my $emailaddress = shift; |
| 749 |
$type = 'opac' unless $type; |
750 |
$type = 'opac' unless $type; |
| 750 |
|
751 |
|
| 751 |
my $dbh = C4::Context->dbh; |
752 |
my $dbh = C4::Context->dbh; |
|
Lines 786-791
sub checkauth {
Link Here
|
| 786 |
); |
787 |
); |
| 787 |
$loggedin = 1; |
788 |
$loggedin = 1; |
| 788 |
} |
789 |
} |
|
|
790 |
elsif ( $emailaddress) { |
| 791 |
# the Google OpenID Connect passes an email address |
| 792 |
} |
| 789 |
elsif ( $sessionID = $query->cookie("CGISESSID") ) |
793 |
elsif ( $sessionID = $query->cookie("CGISESSID") ) |
| 790 |
{ # assignment, not comparison |
794 |
{ # assignment, not comparison |
| 791 |
my $session = get_session($sessionID); |
795 |
my $session = get_session($sessionID); |
|
Lines 922-928
sub checkauth {
Link Here
|
| 922 |
if ( ( $cas && $query->param('ticket') ) |
926 |
if ( ( $cas && $query->param('ticket') ) |
| 923 |
|| $q_userid |
927 |
|| $q_userid |
| 924 |
|| ( $shib && $shib_login ) |
928 |
|| ( $shib && $shib_login ) |
| 925 |
|| $pki_field ne 'None' ) |
929 |
|| $pki_field ne 'None' |
|
|
930 |
|| $emailaddress ) |
| 926 |
{ |
931 |
{ |
| 927 |
my $password = $query->param('password'); |
932 |
my $password = $query->param('password'); |
| 928 |
my $shibSuccess = 0; |
933 |
my $shibSuccess = 0; |
|
Lines 950-955
sub checkauth {
Link Here
|
| 950 |
$info{'invalidCasLogin'} = 1 unless ($return); |
955 |
$info{'invalidCasLogin'} = 1 unless ($return); |
| 951 |
} |
956 |
} |
| 952 |
|
957 |
|
|
|
958 |
elsif ( $emailaddress ) { |
| 959 |
my $value = $emailaddress; |
| 960 |
|
| 961 |
# If we're looking up the email, there's a chance that the person |
| 962 |
# doesn't have a userid. So if there is none, we pass along the |
| 963 |
# borrower number, and the bits of code that need to know the user |
| 964 |
# ID will have to be smart enough to handle that. |
| 965 |
require C4::Members; |
| 966 |
my @users_info = C4::Members::GetBorrowersWithEmail($value); |
| 967 |
if (@users_info) { |
| 968 |
|
| 969 |
# First the userid, then the borrowernum |
| 970 |
$value = $users_info[0][1] || $users_info[0][0]; |
| 971 |
} else { |
| 972 |
undef $value; |
| 973 |
} |
| 974 |
$return = $value ? 1 : 0; |
| 975 |
$userid = $value; |
| 976 |
} |
| 977 |
|
| 953 |
elsif ( |
978 |
elsif ( |
| 954 |
( $pki_field eq 'Common Name' && $ENV{'SSL_CLIENT_S_DN_CN'} ) |
979 |
( $pki_field eq 'Common Name' && $ENV{'SSL_CLIENT_S_DN_CN'} ) |
| 955 |
|| ( $pki_field eq 'emailAddress' |
980 |
|| ( $pki_field eq 'emailAddress' |
| 956 |
- |
|
|