Lines 1186-1193
sub checkauth {
Link Here
|
1186 |
|
1186 |
|
1187 |
# we have to check they are coming from the right ip range |
1187 |
# we have to check they are coming from the right ip range |
1188 |
my $domain = $branches->{$branchcode}->{'branchip'}; |
1188 |
my $domain = $branches->{$branchcode}->{'branchip'}; |
1189 |
$domain =~ s|\.\*||g; |
1189 |
next unless ( $domain ); |
1190 |
if ( $ip !~ /^$domain/ ) { |
1190 |
if ( ! in_iprange($domain) ) { |
1191 |
$loggedin = 0; |
1191 |
$loggedin = 0; |
1192 |
$cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie( |
1192 |
$cookie = $cookie_mgr->replace_in_list( $cookie, $query->cookie( |
1193 |
-name => 'CGISESSID', |
1193 |
-name => 'CGISESSID', |
Lines 1204-1210
sub checkauth {
Link Here
|
1204 |
|
1204 |
|
1205 |
# now we work with the treatment of ip |
1205 |
# now we work with the treatment of ip |
1206 |
my $domain = $branches->{$br}->{'branchip'}; |
1206 |
my $domain = $branches->{$br}->{'branchip'}; |
1207 |
if ( $domain && $ip =~ /^$domain/ ) { |
1207 |
next unless ( $domain ); |
|
|
1208 |
if ( in_iprange($domain) ) { |
1208 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1209 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1209 |
|
1210 |
|
1210 |
# new op dev : add the branchname to the cookie |
1211 |
# new op dev : add the branchname to the cookie |
Lines 1647-1653
sub check_api_auth {
Link Here
|
1647 |
|
1648 |
|
1648 |
# now we work with the treatment of ip |
1649 |
# now we work with the treatment of ip |
1649 |
my $domain = $branches->{$br}->{'branchip'}; |
1650 |
my $domain = $branches->{$br}->{'branchip'}; |
1650 |
if ( $domain && $ip =~ /^$domain/ ) { |
1651 |
next unless ( $domain ); |
|
|
1652 |
if ( in_iprange($domain) ) { |
1651 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1653 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1652 |
|
1654 |
|
1653 |
# new op dev : add the branchname to the cookie |
1655 |
# new op dev : add the branchname to the cookie |
Lines 2260-2268
Returns 1 if the remote address is in the provided iprange, or 0 otherwise.
Link Here
|
2260 |
|
2262 |
|
2261 |
sub in_iprange { |
2263 |
sub in_iprange { |
2262 |
my ($iprange) = @_; |
2264 |
my ($iprange) = @_; |
2263 |
my $result = 1; |
2265 |
my $result = 0; |
|
|
2266 |
# FIXME remove '*' for backwards compatibility in branchip settings |
2267 |
$iprange =~ s|\*||g; |
2264 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2268 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2265 |
if (scalar @allowedipranges > 0) { |
2269 |
if (@allowedipranges) { |
2266 |
my @rangelist; |
2270 |
my @rangelist; |
2267 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2271 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2268 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |
2272 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |