View | Details | Raw Unified | Return to bug 24537
Collapse All | Expand All

(-)a/opac/ilsdi.pl (-6 / +14 lines)
Lines 27-32 use C4::Context; Link Here
27
use List::MoreUtils qw(any);
27
use List::MoreUtils qw(any);
28
use XML::Simple;
28
use XML::Simple;
29
use CGI qw ( -utf8 );
29
use CGI qw ( -utf8 );
30
use Net::Netmask;
30
31
31
=head1 DLF ILS-DI for Koha
32
=head1 DLF ILS-DI for Koha
32
33
Lines 164-174 unless ( C4::Context->preference('ILS-DI') ) { Link Here
164
165
165
# If the remote address is not allowed, redirect to 403
166
# If the remote address is not allowed, redirect to 403
166
my @AuthorizedIPs = split(/,/, C4::Context->preference('ILS-DI:AuthorizedIPs'));
167
my @AuthorizedIPs = split(/,/, C4::Context->preference('ILS-DI:AuthorizedIPs'));
167
if ( @AuthorizedIPs # If no filter set, allow access to everybody
168
if ( @AuthorizedIPs ){ # If no filter set, allow access to everybody
168
    and not any { $ENV{'REMOTE_ADDR'} eq $_ } @AuthorizedIPs # IP Check
169
    my $authorized = 0;
169
    ) {
170
    foreach my $ip (@AuthorizedIPs){
170
    $out->{'code'} = "NotAllowed";
171
        my $netmask = Net::Netmask->new2($ip);
171
    $out->{'message'} = "Unauthorized IP address: ".$ENV{'REMOTE_ADDR'}.".";
172
        if ( $netmask && $netmask->match($ENV{'REMOTE_ADDR'}) ){
173
            $authorized = 1;
174
            last;
175
        }
176
    }
177
    unless ($authorized){
178
        $out->{'code'} = "NotAllowed";
179
        $out->{'message'} = "Unauthorized IP address: ".$ENV{'REMOTE_ADDR'}.".";
180
    }
172
}
181
}
173
182
174
my $service = $cgi->param('service') || "ilsdi";
183
my $service = $cgi->param('service') || "ilsdi";
175
- 

Return to bug 24537