--- loncom/interface/lonsource.pm 2011/10/31 01:16:59 1.27 +++ loncom/interface/lonsource.pm 2013/06/07 16:07:46 1.31 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Source Code handler # -# $Id: lonsource.pm,v 1.27 2011/10/31 01:16:59 raeburn Exp $ +# $Id: lonsource.pm,v 1.31 2013/06/07 16:07:46 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,7 +40,7 @@ use Apache::lonmeta; use Apache::File; use Apache::lonlocal; use HTML::Entities; -use LONCAPA; +use LONCAPA qw(:DEFAULT :match); sub make_link { my ($filename, $listname) = @_; @@ -52,10 +52,10 @@ sub make_link { sub stage_2 { my ($r, $filename, $listname) = @_; my ($author)=($filename=~/\/res\/[^\/]+\/([^\/]+)\//); - $r->print(&Apache::loncommon::start_page('Copy Problem Source Code to Construction Space') + $r->print(&Apache::loncommon::start_page('Copy Problem Source Code to Authoring Space') .&mt('Please enter the directory that you would like the source code to go into.') .'
' - .&mt('Note: the path is in reference to the root of your construction space,' + .&mt('Note: the path is in reference to the root of your Authoring Space,' .' and new directories will be automatically created.') .'
'); $r->print(''. + &mt('Source code is displayed, but you can not copy to Authoring Space, as you do not have an author or co-author role on this server.'). + '
'.&mt('Close Window'). + ''. + &mt('Source code is displayed, but you can not copy to Authoring Space on this server.'). + '
'.&mt('Close Window'). + ''. + &mt('Unable to retrieve file contents.'). + '
'.&mt('Close Window').'' + ); } - my $rows = $count; - my $cols = $maxlength; - $r->print(''); - return OK; - + $r->print(&Apache::loncommon::end_page()); + return; } sub includemeta { @@ -234,7 +292,11 @@ sub includemeta { } else { $file_output=~s/(\<(?:html|problem)[^\>]*\>)/$1\n\/i; } - return $file_output; + if ($file_output eq '-1') { + return; + } else { + return $file_output; + } } sub handler { @@ -247,32 +309,27 @@ sub handler { if ($source ne 'open') { $env{'user.error.msg'}="$filename:cre:1:1:Source code not available"; return HTTP_NOT_ACCEPTABLE; - } - unless ((&Apache::lonnet::allowed('bre',$filename)) && - (&Apache::lonnet::allowed('cre','/'))) { + } + unless (&Apache::lonnet::allowed('bre',$filename)) { $env{'user.error.msg'}="$filename:bre:1:1:Access to resource denied"; return HTTP_NOT_ACCEPTABLE; - } + } + unless (&Apache::lonnet::allowed('cre','/')) { + $env{'user.error.msg'}="$filename:cre:1:1:Access to source code denied"; + return HTTP_NOT_ACCEPTABLE; + } &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; if ($env{'form.action'} eq 'stage2') { - &stage_2($r, $filename,$listname); + &stage_2($r,$filename,$listname); } elsif($env{'form.action'} eq 'copy_stage') { - ©_stage($r, $filename,$env{'form.listname'},$env{'form.newpath'}); + ©_stage($r,$filename,$listname,$env{'form.newpath'}); } elsif($env{'form.action'} eq 'delete_confirm') { - &delete_copy_file($r, $env{'form.newpath'}, $env{'form.filename'}, $env{'form.path'}, '0'); + &delete_copy_file($r,$env{'form.newpath'},$filename, $env{'form.path'}, '0'); } else { - $r->print(''); - $r->print('