--- loncom/interface/lonsource.pm 2017/09/29 19:18:10 1.37 +++ loncom/interface/lonsource.pm 2020/02/03 19:02:18 1.39 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Source Code handler # -# $Id: lonsource.pm,v 1.37 2017/09/29 19:18:10 raeburn Exp $ +# $Id: lonsource.pm,v 1.39 2020/02/03 19:02:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -358,7 +358,7 @@ sub handler { $filename =~ s/\~//g; $filename =~ s/\/+/\//g; if (($env{'request.course.id'}) && (&Apache::lonnet::is_on_map($filename))) { - if ((&Apache::lonnet::metadata(&Apache::lonenc::check_decrypt($filename)) eq 'open') && + if ((&Apache::lonnet::metadata(&Apache::lonenc::check_decrypt($filename),'sourceavail') eq 'open') && (&Apache::lonnet::allowed('cre','/'))) { $canview = 1; } elsif (&Apache::lonnet::allowed('vxc',$env{'request.course.id'})) { @@ -366,9 +366,13 @@ sub handler { &Apache::lonenc::check_decrypt(\$filename); if (($env{'request.role.domain'} eq $cdom) && ($filename =~ /$LONCAPA::assess_re/)) { my ($auname) = ($filename =~ m{^\Q/res/$cdom/\E($match_username)/}); - if (($env{'request.course.adhocsrcaccess'} ne '') && + if (($auname ne '') && ($env{'request.course.adhocsrcaccess'} ne '') && (grep(/^\Q$auname\E$/,split(/,/,$env{'request.course.adhocsrcaccess'})))) { $canview = 1; + } elsif ((&Apache::lonnet::metadata($filename,'sourceavail') eq 'open') && + ($filename =~ m{^\Q/res/$cdom/}) && + (&Apache::lonnet::allowed('bre','/'))) { + $canview = 1; } } }