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