Lines 1180-1187
sub checkauth {
Link Here
|
1180 |
|
1180 |
|
1181 |
# we have to check they are coming from the right ip range |
1181 |
# we have to check they are coming from the right ip range |
1182 |
my $domain = $branches->{$branchcode}->{'branchip'}; |
1182 |
my $domain = $branches->{$branchcode}->{'branchip'}; |
1183 |
$domain =~ s|\.\*||g; |
1183 |
next unless ( $domain ); |
1184 |
if ( $ip !~ /^$domain/ ) { |
1184 |
if ( ! in_iprange($domain) ) { |
1185 |
$loggedin = 0; |
1185 |
$loggedin = 0; |
1186 |
$cookie = $query->cookie( |
1186 |
$cookie = $query->cookie( |
1187 |
-name => 'CGISESSID', |
1187 |
-name => 'CGISESSID', |
Lines 1197-1203
sub checkauth {
Link Here
|
1197 |
|
1197 |
|
1198 |
# now we work with the treatment of ip |
1198 |
# now we work with the treatment of ip |
1199 |
my $domain = $branches->{$br}->{'branchip'}; |
1199 |
my $domain = $branches->{$br}->{'branchip'}; |
1200 |
if ( $domain && $ip =~ /^$domain/ ) { |
1200 |
next unless ( $domain ); |
|
|
1201 |
if ( in_iprange($domain) ) { |
1201 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1202 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1202 |
|
1203 |
|
1203 |
# new op dev : add the branchname to the cookie |
1204 |
# new op dev : add the branchname to the cookie |
Lines 1603-1609
sub check_api_auth {
Link Here
|
1603 |
|
1604 |
|
1604 |
# now we work with the treatment of ip |
1605 |
# now we work with the treatment of ip |
1605 |
my $domain = $branches->{$br}->{'branchip'}; |
1606 |
my $domain = $branches->{$br}->{'branchip'}; |
1606 |
if ( $domain && $ip =~ /^$domain/ ) { |
1607 |
next unless ( $domain ); |
|
|
1608 |
if ( in_iprange($domain) ) { |
1607 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1609 |
$branchcode = $branches->{$br}->{'branchcode'}; |
1608 |
|
1610 |
|
1609 |
# new op dev : add the branchname to the cookie |
1611 |
# new op dev : add the branchname to the cookie |
Lines 2167-2175
Returns 1 if the remote address is in the provided iprange, or 0 otherwise.
Link Here
|
2167 |
|
2169 |
|
2168 |
sub in_iprange { |
2170 |
sub in_iprange { |
2169 |
my ($iprange) = @_; |
2171 |
my ($iprange) = @_; |
2170 |
my $result = 1; |
2172 |
my $result = 0; |
|
|
2173 |
# FIXME remove '*' for backwards compatibility in branchip settings |
2174 |
$iprange =~ s|\*||g; |
2171 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2175 |
my @allowedipranges = $iprange ? split(' ', $iprange) : (); |
2172 |
if (scalar @allowedipranges > 0) { |
2176 |
if (@allowedipranges) { |
2173 |
my @rangelist; |
2177 |
my @rangelist; |
2174 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2178 |
eval { @rangelist = Net::CIDR::range2cidr(@allowedipranges); }; return 0 if $@; |
2175 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |
2179 |
eval { $result = Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @rangelist) } || Koha::Logger->get->warn('cidrlookup failed for ' . join(' ',@rangelist) ); |