Lines 1218-1226
sub checkauth {
Link Here
|
1218 |
if ( C4::Context->preference('StaffLoginRestrictLibraryByIP') ) { |
1218 |
if ( C4::Context->preference('StaffLoginRestrictLibraryByIP') ) { |
1219 |
# we have to check they are coming from the right ip range |
1219 |
# we have to check they are coming from the right ip range |
1220 |
my $domain = $branches->{$branchcode}->{'branchip'} // q{}; |
1220 |
my $domain = $branches->{$branchcode}->{'branchip'} // q{}; |
1221 |
$domain =~ s|\.\*||g; |
1221 |
next unless ( $domain ); |
1222 |
$domain =~ s/\s+//g; |
1222 |
if ( ! in_iprange($domain) ) { |
1223 |
if ( $domain && $ip !~ /^$domain/ ) { |
|
|
1224 |
$cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie( |
1223 |
$cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie( |
1225 |
-name => 'CGISESSID', |
1224 |
-name => 'CGISESSID', |
1226 |
-value => '', |
1225 |
-value => '', |
Lines 1253-1259
sub checkauth {
Link Here
|
1253 |
|
1252 |
|
1254 |
# now we work with the treatment of ip |
1253 |
# now we work with the treatment of ip |
1255 |
my $domain = $branches->{$br}->{'branchip'}; |
1254 |
my $domain = $branches->{$br}->{'branchip'}; |
1256 |
if ( $domain && $ip =~ /^$domain/ ) { |
1255 |
next unless ( $domain ); |
|
|
1256 |
if ( in_iprange($domain) ) { |
1257 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1257 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1258 |
|
1258 |
|
1259 |
# new op dev : add the branchname to the cookie |
1259 |
# new op dev : add the branchname to the cookie |
Lines 1730-1736
sub check_api_auth {
Link Here
|
1730 |
|
1730 |
|
1731 |
# now we work with the treatment of ip |
1731 |
# now we work with the treatment of ip |
1732 |
my $domain = $branches->{$br}->{'branchip'}; |
1732 |
my $domain = $branches->{$br}->{'branchip'}; |
1733 |
if ( $domain && $ip =~ /^$domain/ ) { |
1733 |
next unless ( $domain ); |
|
|
1734 |
if ( in_iprange($domain) ) { |
1734 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1735 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1735 |
|
1736 |
|
1736 |
# new op dev : add the branchname to the cookie |
1737 |
# new op dev : add the branchname to the cookie |
Lines 2363-2371
Returns 1 if the remote address is in the provided iprange, or 0 otherwise.
Link Here
|
2363 |
|
2364 |
|
2364 |
sub in_iprange { |
2365 |
sub in_iprange { |
2365 |
my ($iprange) = @_; |
2366 |
my ($iprange) = @_; |
2366 |
my $result = 1; |
2367 |
my $result = 0; |
|
|
2368 |
# FIXME remove '*' for backwards compatibility in branchip settings |
2369 |
$iprange =~ s|\*||g; |
2367 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2370 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2368 |
if (scalar @allowedipranges > 0) { |
2371 |
if (@allowedipranges) { |
2369 |
my @rangelist; |
2372 |
my @rangelist; |
2370 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2373 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2371 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |
2374 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |