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

(-)a/C4/Auth.pm (-6 / +9 lines)
Lines 1622-1627 Possible return values in C<$status> are: Link Here
1622
1622
1623
=item "ok" -- user authenticated; C<$sessionID> have valid values.
1623
=item "ok" -- user authenticated; C<$sessionID> have valid values.
1624
1624
1625
=item "anon" -- user not authenticated but valid for anonymous session.
1626
1625
=item "failed" -- credentials are not correct; C<$sessionid> are undef
1627
=item "failed" -- credentials are not correct; C<$sessionid> are undef
1626
1628
1627
=item "maintenance" -- DB is in maintenance mode; no login possible at the moment
1629
=item "maintenance" -- DB is in maintenance mode; no login possible at the moment
Lines 1700-1717 sub check_cookie_auth { Link Here
1700
            $session->flush;
1702
            $session->flush;
1701
            C4::Context->_unset_userenv($sessionID);
1703
            C4::Context->_unset_userenv($sessionID);
1702
            return ( "restricted", undef, { old_ip => $ip, new_ip => $remote_addr});
1704
            return ( "restricted", undef, { old_ip => $ip, new_ip => $remote_addr});
1703
        } else {
1705
        } elsif ( $userid ) {
1704
            $session->param( 'lasttime', time() );
1706
            $session->param( 'lasttime', time() );
1705
            my $flags = defined($flagsrequired) ? haspermission( $userid, $flagsrequired ) : 1;
1707
            my $flags = defined($flagsrequired) ? haspermission( $userid, $flagsrequired ) : 1;
1706
            if ($flags) {
1708
            if ($flags) {
1707
                return ( "ok", $session );
1709
                return ( "ok", $session );
1708
            } else {
1709
                $session->delete();
1710
                $session->flush;
1711
                C4::Context->_unset_userenv($sessionID);
1712
                return ( "failed", undef );
1713
            }
1710
            }
1711
        } else {
1712
            return ( "anon", $session );
1714
        }
1713
        }
1714
        $session->delete();
1715
        $session->flush;
1716
        C4::Context->_unset_userenv($sessionID);
1717
        return ( "failed", undef );
1715
    } else {
1718
    } else {
1716
        return ( "expired", undef );
1719
        return ( "expired", undef );
1717
    }
1720
    }
(-)a/Koha/REST/V1/Auth.pm (-3 / +2 lines)
Lines 224-233 sub authenticate_api_request { Link Here
224
                                                { remote_addr => $remote_addr });
224
                                                { remote_addr => $remote_addr });
225
        if ($status eq "ok") {
225
        if ($status eq "ok") {
226
            $user = Koha::Patrons->find( $session->param('number') )
226
            $user = Koha::Patrons->find( $session->param('number') )
227
              unless $session->param('sessiontype')
228
                 and $session->param('sessiontype') eq 'anon';
229
            $cookie_auth = 1;
227
            $cookie_auth = 1;
230
        }
228
        }
229
        elsif ($status eq "anon") {
230
            $cookie_auth = 1;
231
        elsif ($status eq "maintenance") {
231
        elsif ($status eq "maintenance") {
232
            Koha::Exceptions::UnderMaintenance->throw(
232
            Koha::Exceptions::UnderMaintenance->throw(
233
                error => 'System is under maintenance.'
233
                error => 'System is under maintenance.'
234
- 

Return to bug 29914