--- loncom/auth/blockedaccess.pm 2020/09/28 00:10:27 1.5 +++ loncom/auth/blockedaccess.pm 2020/10/01 10:16:33 1.6 @@ -1,7 +1,7 @@ # The LearningOnline Network # Information about blocking status for Portfolio files # -# $Id: blockedaccess.pm,v 1.5 2020/09/28 00:10:27 raeburn Exp $ +# $Id: blockedaccess.pm,v 1.6 2020/10/01 10:16:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,6 +42,7 @@ sub handler { return OK if $r->header_only; &Apache::lonlocal::get_language_handle($r); + my $ver_origurl = $r->uri; my $origurl = &Apache::lonnet::deversion($r->uri); my ($blocked,$blocktext); @@ -55,8 +56,16 @@ sub handler { my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; 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) = - &Apache::loncommon::blocking_status('docs',$cnum,$cdom,$origurl,1,$symb,'blockedaccess'); + &Apache::loncommon::blocking_status('docs',$cnum,$cdom,$url,1,$symb,'blockedaccess'); } } if ($blocked) {