|
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) ); |