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

(-)a/C4/Auth.pm (-16 / +15 lines)
Lines 157-162 sub get_template_and_user { Link Here
157
    my ( $user, $cookie, $sessionID, $flags );
157
    my ( $user, $cookie, $sessionID, $flags );
158
    $cookie = [];
158
    $cookie = [];
159
159
160
    my $cookie_mgr = Koha::CookieManager->new;
161
160
    # Get shibboleth login attribute
162
    # Get shibboleth login attribute
161
    my $shib = C4::Context->config('useshibboleth') && shib_ok();
163
    my $shib = C4::Context->config('useshibboleth') && shib_ok();
162
    my $shib_login = $shib ? get_login_shib() : undef;
164
    my $shib_login = $shib ? get_login_shib() : undef;
Lines 245-257 sub get_template_and_user { Link Here
245
        if ($kick_out) {
247
        if ($kick_out) {
246
            $template = C4::Templates::gettemplate( 'opac-auth.tt', 'opac',
248
            $template = C4::Templates::gettemplate( 'opac-auth.tt', 'opac',
247
                $in->{query} );
249
                $in->{query} );
248
            push @$cookie, $in->{query}->cookie(
250
            $cookie = $cookie_mgr->replace_in_list( $cookie, $in->{query}->cookie(
249
                -name     => 'CGISESSID',
251
                -name     => 'CGISESSID',
250
                -value    => '',
252
                -value    => '',
251
                -expires  => '',
252
                -HttpOnly => 1,
253
                -HttpOnly => 1,
253
                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
254
                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
254
            );
255
            ));
255
256
256
            $template->param(
257
            $template->param(
257
                loginprompt => 1,
258
                loginprompt => 1,
Lines 658-664 sub get_template_and_user { Link Here
658
        # what to do
659
        # what to do
659
        my $language = C4::Languages::getlanguage( $in->{'query'} );
660
        my $language = C4::Languages::getlanguage( $in->{'query'} );
660
        my $languagecookie = C4::Templates::getlanguagecookie( $in->{'query'}, $language );
661
        my $languagecookie = C4::Templates::getlanguagecookie( $in->{'query'}, $language );
661
        push @{$cookie}, $languagecookie;
662
        $cookie = $cookie_mgr->replace_in_list( $cookie, $languagecookie );
662
    }
663
    }
663
664
664
    return ( $template, $borrowernumber, $cookie, $flags );
665
    return ( $template, $borrowernumber, $cookie, $flags );
Lines 870-882 sub checkauth { Link Here
870
    if ( !$shib and defined( $ENV{'REMOTE_USER'} ) and $ENV{'REMOTE_USER'} ne '' and $userid = $ENV{'REMOTE_USER'} ) {
871
    if ( !$shib and defined( $ENV{'REMOTE_USER'} ) and $ENV{'REMOTE_USER'} ne '' and $userid = $ENV{'REMOTE_USER'} ) {
871
872
872
        # Using Basic Authentication, no cookies required
873
        # Using Basic Authentication, no cookies required
873
        push @$cookie, $query->cookie(
874
        $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
874
            -name     => 'CGISESSID',
875
            -name     => 'CGISESSID',
875
            -value    => '',
876
            -value    => '',
876
            -expires  => '',
877
            -HttpOnly => 1,
877
            -HttpOnly => 1,
878
            -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
878
            -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
879
        );
879
        ));
880
        $loggedin = 1;
880
        $loggedin = 1;
881
    }
881
    }
882
    elsif ( $emailaddress) {
882
    elsif ( $emailaddress) {
Lines 929-940 sub checkauth { Link Here
929
                }
929
                }
930
            } else {
930
            } else {
931
931
932
                push @$cookie, $query->cookie(
932
                $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
933
                    -name     => 'CGISESSID',
933
                    -name     => 'CGISESSID',
934
                    -value    => $session->id,
934
                    -value    => $session->id,
935
                    -HttpOnly => 1,
935
                    -HttpOnly => 1,
936
                    -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
936
                    -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
937
                );
937
                ));
938
938
939
                $flags = haspermission( $userid, $flagsrequired );
939
                $flags = haspermission( $userid, $flagsrequired );
940
                if ($flags) {
940
                if ($flags) {
Lines 973-984 sub checkauth { Link Here
973
973
974
        $sessionID = $session->id;
974
        $sessionID = $session->id;
975
        C4::Context->_new_userenv($sessionID);
975
        C4::Context->_new_userenv($sessionID);
976
        push @$cookie, $query->cookie(
976
        $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
977
            -name     => 'CGISESSID',
977
            -name     => 'CGISESSID',
978
            -value    => $sessionID,
978
            -value    => $sessionID,
979
            -HttpOnly => 1,
979
            -HttpOnly => 1,
980
            -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
980
            -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
981
        );
981
        ));
982
        my $pki_field = C4::Context->preference('AllowPKIAuth');
982
        my $pki_field = C4::Context->preference('AllowPKIAuth');
983
        if ( !defined($pki_field) ) {
983
        if ( !defined($pki_field) ) {
984
            print STDERR "ERROR: Missing system preference AllowPKIAuth.\n";
984
            print STDERR "ERROR: Missing system preference AllowPKIAuth.\n";
Lines 1173-1184 sub checkauth { Link Here
1173
                        $domain =~ s|\.\*||g;
1173
                        $domain =~ s|\.\*||g;
1174
                        if ( $ip !~ /^$domain/ ) {
1174
                        if ( $ip !~ /^$domain/ ) {
1175
                            $loggedin = 0;
1175
                            $loggedin = 0;
1176
                            push @$cookie, $query->cookie(
1176
                            $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
1177
                                -name     => 'CGISESSID',
1177
                                -name     => 'CGISESSID',
1178
                                -value    => '',
1178
                                -value    => '',
1179
                                -HttpOnly => 1,
1179
                                -HttpOnly => 1,
1180
                                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
1180
                                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
1181
                            );
1181
                            ));
1182
                            $info{'wrongip'} = 1;
1182
                            $info{'wrongip'} = 1;
1183
                        }
1183
                        }
1184
                    }
1184
                    }
Lines 1262-1273 sub checkauth { Link Here
1262
    {
1262
    {
1263
        # successful login
1263
        # successful login
1264
        unless (@$cookie) {
1264
        unless (@$cookie) {
1265
            push @$cookie, $query->cookie(
1265
            $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
1266
                -name     => 'CGISESSID',
1266
                -name     => 'CGISESSID',
1267
                -value    => '',
1267
                -value    => '',
1268
                -HttpOnly => 1,
1268
                -HttpOnly => 1,
1269
                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
1269
                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
1270
            );
1270
            ));
1271
        }
1271
        }
1272
1272
1273
        track_login_daily( $userid );
1273
        track_login_daily( $userid );
1274
- 

Return to bug 29957