Lines 1213-1220
sub checkauth {
Link Here
|
1213 |
|
1213 |
|
1214 |
# we have to check they are coming from the right ip range |
1214 |
# we have to check they are coming from the right ip range |
1215 |
my $domain = $branches->{$branchcode}->{'branchip'}; |
1215 |
my $domain = $branches->{$branchcode}->{'branchip'}; |
1216 |
$domain =~ s|\.\*||g; |
1216 |
next unless ( $domain ); |
1217 |
if ( $ip !~ /^$domain/ ) { |
1217 |
if ( ! in_iprange($domain) ) { |
1218 |
$loggedin = 0; |
1218 |
$loggedin = 0; |
1219 |
$cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie( |
1219 |
$cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie( |
1220 |
-name => 'CGISESSID', |
1220 |
-name => 'CGISESSID', |
Lines 1231-1237
sub checkauth {
Link Here
|
1231 |
|
1231 |
|
1232 |
# now we work with the treatment of ip |
1232 |
# now we work with the treatment of ip |
1233 |
my $domain = $branches->{$br}->{'branchip'}; |
1233 |
my $domain = $branches->{$br}->{'branchip'}; |
1234 |
if ( $domain && $ip =~ /^$domain/ ) { |
1234 |
next unless ( $domain ); |
|
|
1235 |
if ( in_iprange($domain) ) { |
1235 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1236 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1236 |
|
1237 |
|
1237 |
# new op dev : add the branchname to the cookie |
1238 |
# new op dev : add the branchname to the cookie |
Lines 1665-1671
sub check_api_auth {
Link Here
|
1665 |
|
1666 |
|
1666 |
# now we work with the treatment of ip |
1667 |
# now we work with the treatment of ip |
1667 |
my $domain = $branches->{$br}->{'branchip'}; |
1668 |
my $domain = $branches->{$br}->{'branchip'}; |
1668 |
if ( $domain && $ip =~ /^$domain/ ) { |
1669 |
next unless ( $domain ); |
|
|
1670 |
if ( in_iprange($domain) ) { |
1669 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1671 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1670 |
|
1672 |
|
1671 |
# new op dev : add the branchname to the cookie |
1673 |
# new op dev : add the branchname to the cookie |
Lines 2232-2240
Returns 1 if the remote address is in the provided iprange, or 0 otherwise.
Link Here
|
2232 |
|
2234 |
|
2233 |
sub in_iprange { |
2235 |
sub in_iprange { |
2234 |
my ($iprange) = @_; |
2236 |
my ($iprange) = @_; |
2235 |
my $result = 1; |
2237 |
my $result = 0; |
|
|
2238 |
# FIXME remove '*' for backwards compatibility in branchip settings |
2239 |
$iprange =~ s|\*||g; |
2236 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2240 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2237 |
if (scalar @allowedipranges > 0) { |
2241 |
if (@allowedipranges) { |
2238 |
my @rangelist; |
2242 |
my @rangelist; |
2239 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2243 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2240 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |
2244 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |