version 1.5, 2020/09/28 00:10:27
|
version 1.7, 2021/11/30 15:55:40
|
Line 42 sub handler {
|
Line 42 sub handler {
|
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
&Apache::lonlocal::get_language_handle($r); |
&Apache::lonlocal::get_language_handle($r); |
|
my $ver_origurl = $r->uri; |
my $origurl = &Apache::lonnet::deversion($r->uri); |
my $origurl = &Apache::lonnet::deversion($r->uri); |
my ($blocked,$blocktext); |
my ($blocked,$blocktext,$clientip); |
|
$clientip = &Apache::lonnet::get_requestor_ip($r); |
|
|
if (&Apache::lonnet::is_portfolio_url($origurl)) { |
if (&Apache::lonnet::is_portfolio_url($origurl)) { |
my ($type,$udom,$uname,$file_name,$group) = |
my ($type,$udom,$uname,$file_name,$group) = |
&Apache::lonnet::parse_portfolio_url($origurl); |
&Apache::lonnet::parse_portfolio_url($origurl); |
($blocked,$blocktext) = |
($blocked,$blocktext) = |
&Apache::loncommon::blocking_status('port',$uname,$udom); |
&Apache::loncommon::blocking_status('port',$clientip,$uname,$udom); |
} else { |
} else { |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $symb = $env{'request.symb'}; |
my $symb = $env{'request.symb'}; |
|
my $url = $origurl; |
|
# If no symb, and url is on not map, check for referrer |
|
unless (($symb) || &Apache::lonnet::is_on_map($url) || ($origurl eq '/adm/blockedaccess')) { |
|
my $refuri = $env{'httpref.'.$origurl} || $env{'httpref.'.$ver_origurl}; |
|
if ($refuri) { |
|
$url = $refuri; |
|
} |
|
} |
($blocked,$blocktext) = |
($blocked,$blocktext) = |
&Apache::loncommon::blocking_status('docs',$cnum,$cdom,$origurl,1,$symb,'blockedaccess'); |
&Apache::loncommon::blocking_status('docs',$clientip,$cnum,$cdom,$url,1,$symb,'blockedaccess'); |
} |
} |
} |
} |
if ($blocked) { |
if ($blocked) { |