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

(-)a/C4/Auth.pm (-19 / +22 lines)
Lines 763-769 sub checkauth { Link Here
763
            -HttpOnly => 1
763
            -HttpOnly => 1
764
        );
764
        );
765
        $userid = $q_userid;
765
        $userid = $q_userid;
766
        my $pki_field = C4::Context->preference('AllowPKIAuth') // '';
766
        my $pki_field = C4::Context->preference('AllowPKIAuth');
767
        if (!defined($pki_field)) {
768
            print STDERR "Error: Missing AllowPKIAuth System Preference!\n";
769
            $pki_field = '';
770
        }
767
        if (   ( $cas && $query->param('ticket') )
771
        if (   ( $cas && $query->param('ticket') )
768
            || $userid
772
            || $userid
769
            || $pki_field ne 'None'
773
            || $pki_field ne 'None'
Lines 780-807 sub checkauth { Link Here
780
                $info{'invalidCasLogin'} = 1 unless ($return);
784
                $info{'invalidCasLogin'} = 1 unless ($return);
781
            }
785
            }
782
786
783
    elsif ($persona) {
787
            elsif ($persona) {
784
        my $value = $persona;
788
                my $value = $persona;
785
789
786
        # If we're looking up the email, there's a chance that the person
790
        # If we're looking up the email, there's a chance that the person
787
        # doesn't have a userid. So if there is none, we pass along the
791
        # doesn't have a userid. So if there is none, we pass along the
788
        # borrower number, and the bits of code that need to know the user
792
        # borrower number, and the bits of code that need to know the user
789
        # ID will have to be smart enough to handle that.
793
        # ID will have to be smart enough to handle that.
790
        require C4::Members;
794
                require C4::Members;
791
        my @users_info = C4::Members::GetBorrowersWithEmail($value);
795
                my @users_info = C4::Members::GetBorrowersWithEmail($value);
792
        if (@users_info) {
796
                if (@users_info) {
793
797
794
            # First the userid, then the borrowernum
798
            # First the userid, then the borrowernum
795
            $value = $users_info[0][1] || $users_info[0][0];
799
                    $value = $users_info[0][1] || $users_info[0][0];
796
        }
800
                }
797
        else {
801
                else {
798
            undef $value;
802
                    undef $value;
799
        }
803
                }
800
        $return = $value ? 1 : 0;
804
                $return = $value ? 1 : 0;
801
        $userid = $value;
805
                $userid = $value;
802
    }
806
            }
803
807
804
    elsif (
808
            elsif (
805
                ( $pki_field eq 'Common Name' && $ENV{'SSL_CLIENT_S_DN_CN'} )
809
                ( $pki_field eq 'Common Name' && $ENV{'SSL_CLIENT_S_DN_CN'} )
806
                || (   $pki_field eq 'emailAddress'
810
                || (   $pki_field eq 'emailAddress'
807
                    && $ENV{'SSL_CLIENT_S_DN_Email'} )
811
                    && $ENV{'SSL_CLIENT_S_DN_Email'} )
Lines 833-846 sub checkauth { Link Here
833
                $return = $value ? 1 : 0;
837
                $return = $value ? 1 : 0;
834
                $userid = $value;
838
                $userid = $value;
835
839
836
    }
840
            }
837
            else {
841
            else {
838
                my $retuserid;
842
                my $retuserid;
839
                ( $return, $cardnumber, $retuserid ) =
843
                ( $return, $cardnumber, $retuserid ) =
840
                  checkpw( $dbh, $userid, $password, $query );
844
                  checkpw( $dbh, $userid, $password, $query );
841
                $userid = $retuserid if ( $retuserid );
845
                $userid = $retuserid if ( $retuserid );
842
        }
846
            }
843
        if ($return) {
847
            if ($return) {
844
               #_session_log(sprintf "%20s from %16s logged in  at %30s.\n", $userid,$ENV{'REMOTE_ADDR'},(strftime '%c', localtime));
848
               #_session_log(sprintf "%20s from %16s logged in  at %30s.\n", $userid,$ENV{'REMOTE_ADDR'},(strftime '%c', localtime));
845
                if ( $flags = haspermission(  $userid, $flagsrequired ) ) {
849
                if ( $flags = haspermission(  $userid, $flagsrequired ) ) {
846
                    $loggedin = 1;
850
                    $loggedin = 1;
847
- 

Return to bug 11077