--- loncom/interface/lonsource.pm 2004/06/12 04:44:31 1.2 +++ loncom/interface/lonsource.pm 2004/06/18 15:13:07 1.3 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Souce Code handler # -# $Id: lonsource.pm,v 1.2 2004/06/12 04:44:31 albertel Exp $ +# $Id: lonsource.pm,v 1.3 2004/06/18 15:13:07 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -69,16 +69,23 @@ sub print_item { sub handler { my $r=shift; - if($ENV{'form.action'} eq 'stage2') { + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['filename']); + my $filename = $ENV{'form.filename'}; + my $source = &Apache::lonnet::metadata($filename,'sourceavail'); + if ($source ne 'open') { + $ENV{'user.error.msg'}="$filename:cre:1:1:Source code not available"; + return HTTP_NOT_ACCEPTABLE; + } + if ((!&Apache::lonnet::allowed('cre')) || + (!&Apache::lonnet::allowed('bre',$filename))) { + $ENV{'user.error.msg'}="$filename:bre:1:1:Access to resource denied"; + return HTTP_NOT_ACCEPTABLE; + } + if ($ENV{'form.action'} eq 'stage2') { &stage_2($r, $ENV{'form.filename'}); } else { - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['filename']); - if (!&Apache::lonnet::allowed('cre',$ENV{'form.filename'})) { - return FORBIDDEN; - } &Apache::loncommon::content_type($r,'text/html'); - my $filename = $ENV{'form.filename'}; $r->send_http_header; $r->print('