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

(-)a/C4/Auth.pm (-36 / +36 lines)
Lines 1215-1257 sub checkauth { Link Here
1215
                        $register_name = $register->name if ($register);
1215
                        $register_name = $register->name if ($register);
1216
                    }
1216
                    }
1217
                    my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search->as_list };
1217
                    my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search->as_list };
1218
                    if ( $type ne 'opac' and C4::Context->preference('AutoLocation') ) {
1218
                    if ( $type ne 'opac' ) {
1219
1219
                        if ( C4::Context->preference('AutoLocation') ) {
1220
                        # we have to check they are coming from the right ip range
1220
                            # we have to check they are coming from the right ip range
1221
                        my $domain = $branches->{$branchcode}->{'branchip'};
1221
                            my $domain = $branches->{$branchcode}->{'branchip'};
1222
                        $domain =~ s|\.\*||g;
1222
                            $domain =~ s|\.\*||g;
1223
                        $domain =~ s/\s+//g;
1223
                            $domain =~ s/\s+//g;
1224
                        if ( $ip !~ /^$domain/ ) {
1224
                            if ( $ip !~ /^$domain/ ) {
1225
                            $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
1225
                                $cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie(
1226
                                -name     => 'CGISESSID',
1226
                                    -name     => 'CGISESSID',
1227
                                -value    => '',
1227
                                    -value    => '',
1228
                                -HttpOnly => 1,
1228
                                    -HttpOnly => 1,
1229
                                -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
1229
                                    -secure => ( C4::Context->https_enabled() ? 1 : 0 ),
1230
                                -sameSite => 'Lax',
1230
                                    -sameSite => 'Lax',
1231
                            ));
1231
                                ));
1232
                            $info{'wrongip'} = 1;
1232
                                $info{'wrongip'} = 1;
1233
                            $auth_state = "failed";
1233
                                $auth_state = "failed";
1234
                            }
1234
                        }
1235
                        }
1235
                    }
1236
1237
                    if (
1238
                        (
1239
                              !C4::Context->preference('AutoLocation')
1240
                            && C4::Context->preference('StaffLoginBranchBasedOnIP')
1241
                        )
1242
                        || ( C4::Context->preference('AutoLocation') && $auth_state ne 'failed' )
1243
                        )
1244
                    {
1245
                        foreach my $br ( uniq( $branchcode, keys %$branches ) ) {
1246
1247
                            #     now we work with the treatment of ip
1248
                            my $domain = $branches->{$br}->{'branchip'};
1249
                            if ( $domain && $ip =~ /^$domain/ ) {
1250
                                $branchcode = $branches->{$br}->{'branchcode'};
1251
1236
1252
                                # new op dev : add the branchname to the cookie
1237
                        if (
1253
                                $branchname = $branches->{$br}->{'branchname'};
1238
                            (
1254
                                last;
1239
                                  !C4::Context->preference('AutoLocation')
1240
                                && C4::Context->preference('StaffLoginBranchBasedOnIP')
1241
                            )
1242
                            || ( C4::Context->preference('AutoLocation') && $auth_state ne 'failed' )
1243
                            )
1244
                        {
1245
                            foreach my $br ( uniq( $branchcode, keys %$branches ) ) {
1246
1247
                                #     now we work with the treatment of ip
1248
                                my $domain = $branches->{$br}->{'branchip'};
1249
                                if ( $domain && $ip =~ /^$domain/ ) {
1250
                                    $branchcode = $branches->{$br}->{'branchcode'};
1251
1252
                                    # new op dev : add the branchname to the cookie
1253
                                    $branchname = $branches->{$br}->{'branchname'};
1254
                                    last;
1255
                                }
1255
                            }
1256
                            }
1256
                        }
1257
                        }
1257
                    }
1258
                    }
1258
- 

Return to bug 36665