Diff for /loncom/publisher/loncfile.pm between versions 1.66 and 1.67

version 1.66, 2005/04/07 04:46:36 version 1.67, 2005/04/07 06:56:24
Line 704  button which returns you to the driector Line 704  button which returns you to the driector
 sub NewFile1 {  sub NewFile1 {
     my ($request, $user, $domain, $fn, $newfilename) = @_;      my ($request, $user, $domain, $fn, $newfilename) = @_;
   
     if ($ENV{'form.action'} =~ /new(.+)file/) {      if ($env{'form.action'} =~ /new(.+)file/) {
  my $extension=$1;   my $extension=$1;
   
         ##Informs User (name).(number).(extension) not allowed           ##Informs User (name).(number).(extension) not allowed 
Line 767  sub phaseone { Line 767  sub phaseone {
     my ($r,$fn,$uname,$udom)=@_;      my ($r,$fn,$uname,$udom)=@_;
       
     my $doingdir=0;      my $doingdir=0;
     if ($ENV{'form.action'} eq 'newdir') { $doingdir=1; }      if ($env{'form.action'} eq 'newdir') { $doingdir=1; }
     my $newfilename=&cleanDest($r,$ENV{'form.newfilename'},$doingdir,$fn,$uname);      my $newfilename=&cleanDest($r,$env{'form.newfilename'},$doingdir,$fn,$uname);
     $newfilename=&relativeDest($fn,$newfilename,$uname);      $newfilename=&relativeDest($fn,$newfilename,$uname);
     $r->print('<form action="/adm/cfile" method="post">'.      $r->print('<form action="/adm/cfile" method="post">'.
       '<input type="hidden" name="qualifiedfilename" value="'.$fn.'" />'.        '<input type="hidden" name="qualifiedfilename" value="'.$fn.'" />'.
       '<input type="hidden" name="phase" value="two" />'.        '<input type="hidden" name="phase" value="two" />'.
       '<input type="hidden" name="action" value="'.$ENV{'form.action'}.'" />');        '<input type="hidden" name="action" value="'.$env{'form.action'}.'" />');
       
     if ($ENV{'form.action'} eq 'rename') {      if ($env{'form.action'} eq 'rename') {
  &Rename1($r, $uname, $udom, $fn, $newfilename, 'rename');   &Rename1($r, $uname, $udom, $fn, $newfilename, 'rename');
     } elsif ($ENV{'form.action'} eq 'move') {      } elsif ($env{'form.action'} eq 'move') {
  &Rename1($r, $uname, $udom, $fn, $newfilename, 'move');   &Rename1($r, $uname, $udom, $fn, $newfilename, 'move');
     } elsif ($ENV{'form.action'} eq 'delete') {       } elsif ($env{'form.action'} eq 'delete') { 
  &Delete1($r, $uname, $udom, $fn);   &Delete1($r, $uname, $udom, $fn);
     } elsif ($ENV{'form.action'} eq 'decompress') {      } elsif ($env{'form.action'} eq 'decompress') {
  &Decompress1($r, $uname, $udom, $fn);   &Decompress1($r, $uname, $udom, $fn);
     } elsif ($ENV{'form.action'} eq 'copy') {       } elsif ($env{'form.action'} eq 'copy') { 
  if($newfilename) {   if($newfilename) {
     &Copy1($r, $uname, $udom, $fn, $newfilename);      &Copy1($r, $uname, $udom, $fn, $newfilename);
  } else {   } else {
     $r->print('<p>'.&mt('No new filename specified.').'</p></form>');      $r->print('<p>'.&mt('No new filename specified.').'</p></form>');
  }   }
     } elsif ($ENV{'form.action'} eq 'newdir') {      } elsif ($env{'form.action'} eq 'newdir') {
  my $mode = '';   my $mode = '';
  if (exists($ENV{'form.callingmode'}) ) {   if (exists($env{'form.callingmode'}) ) {
     $mode = $ENV{'form.callingmode'};      $mode = $env{'form.callingmode'};
  }      }   
  &NewDir1($r, $uname, $udom, $fn, $newfilename, $mode);   &NewDir1($r, $uname, $udom, $fn, $newfilename, $mode);
     }  elsif ($ENV{'form.action'} eq 'newfile' ||      }  elsif ($env{'form.action'} eq 'newfile' ||
       $ENV{'form.action'} eq 'newhtmlfile' ||        $env{'form.action'} eq 'newhtmlfile' ||
       $ENV{'form.action'} eq 'newproblemfile' ||        $env{'form.action'} eq 'newproblemfile' ||
       $ENV{'form.action'} eq 'newpagefile' ||        $env{'form.action'} eq 'newpagefile' ||
       $ENV{'form.action'} eq 'newsequencefile' ||        $env{'form.action'} eq 'newsequencefile' ||
       $ENV{'form.action'} eq 'newrightsfile' ||        $env{'form.action'} eq 'newrightsfile' ||
       $ENV{'form.action'} eq 'newstyfile' ||        $env{'form.action'} eq 'newstyfile' ||
               $ENV{'form.action'} eq 'newlibraryfile' ||                $env{'form.action'} eq 'newlibraryfile' ||
       $ENV{'form.action'} eq 'Select Action') {        $env{'form.action'} eq 'Select Action') {
         my $empty=&mt('Type Name Here');          my $empty=&mt('Type Name Here');
  if (($newfilename!~/\/$/) && ($newfilename!~/$empty$/)) {   if (($newfilename!~/\/$/) && ($newfilename!~/$empty$/)) {
     &NewFile1($r, $uname, $udom, $fn, $newfilename);      &NewFile1($r, $uname, $udom, $fn, $newfilename);
Line 1117  sub phasetwo { Line 1117  sub phasetwo {
     my $dest;                   # On success this is where we'll go.      my $dest;                   # On success this is where we'll go.
           
     &Debug($r,"loncfile::phase2 dir = $dir main = $main suffix = $suffix");      &Debug($r,"loncfile::phase2 dir = $dir main = $main suffix = $suffix");
     &Debug($r,"    newfilename = ".$ENV{'form.newfilename'});      &Debug($r,"    newfilename = ".$env{'form.newfilename'});
   
     my $conspace=$fn;      my $conspace=$fn;
           
     &Debug($r,"loncfile::phase2 Full construction space name: $conspace");      &Debug($r,"loncfile::phase2 Full construction space name: $conspace");
           
     &Debug($r,"loncfie::phase2 action is $ENV{'form.action'}");      &Debug($r,"loncfie::phase2 action is $env{'form.action'}");
           
     # Select the appropriate processing sub.      # Select the appropriate processing sub.
     if ($ENV{'form.action'} eq 'decompress') {       if ($env{'form.action'} eq 'decompress') { 
  $main .= '.'.$suffix;   $main .= '.'.$suffix;
  if(!&decompress2($r, $uname, $dir, $main)) {   if(!&decompress2($r, $uname, $dir, $main)) {
     return ;      return ;
  }   }
  $dest = $dir."/.";   $dest = $dir."/.";
     } elsif ($ENV{'form.action'} eq 'rename' ||      } elsif ($env{'form.action'} eq 'rename' ||
      $ENV{'form.action'} eq 'move') {       $env{'form.action'} eq 'move') {
  if($ENV{'form.newfilename'}) {   if($env{'form.newfilename'}) {
     if (!defined($dir)) {      if (!defined($dir)) {
  $fn=~m:^(.*)/:;   $fn=~m:^(.*)/:;
  $dir=$1;    $dir=$1; 
     }      }
     if(!&Rename2($r, $uname, $dir, $fn, $ENV{'form.newfilename'})) {      if(!&Rename2($r, $uname, $dir, $fn, $env{'form.newfilename'})) {
  return;   return;
     }      }
     $dest = $ENV{'form.newfilename'};      $dest = $env{'form.newfilename'};
  }   }
     } elsif ($ENV{'form.action'} eq 'delete') {       } elsif ($env{'form.action'} eq 'delete') { 
  if(!&Delete2($r, $uname, $ENV{'form.newfilename'})) {   if(!&Delete2($r, $uname, $env{'form.newfilename'})) {
     return ;      return ;
  }   }
  # Once a resource is deleted, we just list the directory that   # Once a resource is deleted, we just list the directory that
  # previously held it.   # previously held it.
  #   #
  $dest = $dir."/."; # Parent dir.   $dest = $dir."/."; # Parent dir.
     } elsif ($ENV{'form.action'} eq 'copy') {       } elsif ($env{'form.action'} eq 'copy') { 
  if($ENV{'form.newfilename'}) {   if($env{'form.newfilename'}) {
     if(!&Copy2($r, $uname, $dir, $fn, $ENV{'form.newfilename'})) {      if(!&Copy2($r, $uname, $dir, $fn, $env{'form.newfilename'})) {
  return ;   return ;
     }      }
     $dest = $ENV{'form.newfilename'};      $dest = $env{'form.newfilename'};
       } else {        } else {
     $r->print('<p>'.&mt('No New filename specified').'</p></form>');      $r->print('<p>'.&mt('No New filename specified').'</p></form>');
     return;      return;
  }   }
   
     } elsif ($ENV{'form.action'} eq 'newdir') {      } elsif ($env{'form.action'} eq 'newdir') {
         my $newdir= $ENV{'form.newfilename'};          my $newdir= $env{'form.newfilename'};
  if(!&NewDir2($r, $uname, $newdir)) {   if(!&NewDir2($r, $uname, $newdir)) {
     return;      return;
  }   }
  $dest = $newdir."/";   $dest = $newdir."/";
     }      }
     if ( ($ENV{'form.action'} eq 'newdir') && ($ENV{'form.phase'} eq 'two') && ( ($ENV{'form.callingmode'} eq 'testbank') || ($ENV{'form.callingmode'} eq 'imsimport') ) ) {      if ( ($env{'form.action'} eq 'newdir') && ($env{'form.phase'} eq 'two') && ( ($env{'form.callingmode'} eq 'testbank') || ($env{'form.callingmode'} eq 'imsimport') ) ) {
  $r->print('<h3><a href="javascript:self.close()">'.&mt('Done').'</a></h3>');   $r->print('<h3><a href="javascript:self.close()">'.&mt('Done').'</a></h3>');
     } else {      } else {
  $r->print('<h3><a href="'.&url($dest).'">'.&mt('Done').'</a></h3>');   $r->print('<h3><a href="'.&url($dest).'">'.&mt('Done').'</a></h3>');
Line 1184  sub handler { Line 1184  sub handler {
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['decompress','action','filename','newfilename']);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['decompress','action','filename','newfilename']);
   
     &Debug($r, "loncfile.pm - handler entered");      &Debug($r, "loncfile.pm - handler entered");
     &Debug($r, " filename: ".$ENV{'form.filename'});      &Debug($r, " filename: ".$env{'form.filename'});
     &Debug($r, " newfilename: ".$ENV{'form.newfilename'});      &Debug($r, " newfilename: ".$env{'form.newfilename'});
 #  #
 # Determine the root filename  # Determine the root filename
 # This could come in as "filename", which actually is a URL, or  # This could come in as "filename", which actually is a URL, or
Line 1193  sub handler { Line 1193  sub handler {
 #  #
     my $fn;      my $fn;
   
     if ($ENV{'form.filename'}) {      if ($env{'form.filename'}) {
  &Debug($r, "test: $ENV{'form.filename'}");   &Debug($r, "test: $env{'form.filename'}");
  $fn=&Apache::lonnet::unescape($ENV{'form.filename'});   $fn=&Apache::lonnet::unescape($env{'form.filename'});
  $fn=&URLToPath($fn);   $fn=&URLToPath($fn);
     }  elsif($ENV{'QUERY_STRING'} && $ENV{'form.phase'} ne 'two') {        }  elsif($ENV{'QUERY_STRING'} && $env{'form.phase'} ne 'two') {  
  #Just hijack the script only the first time around to inject the   #Just hijack the script only the first time around to inject the
  #correct information for further processing   #correct information for further processing
  $fn=&Apache::lonnet::unescape($ENV{'form.decompress'});   $fn=&Apache::lonnet::unescape($env{'form.decompress'});
  $fn=&URLToPath($fn);   $fn=&URLToPath($fn);
  $ENV{'form.action'}="decompress";   $env{'form.action'}="decompress";
     } elsif ($ENV{'form.qualifiedfilename'}) {      } elsif ($env{'form.qualifiedfilename'}) {
  $fn=$ENV{'form.qualifiedfilename'};   $fn=$env{'form.qualifiedfilename'};
     } else {      } else {
  &Debug($r, "loncfile::handler - no form.filename");   &Debug($r, "loncfile::handler - no form.filename");
  $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.   $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
        ' unspecified filename for cfile', $r->filename);          ' unspecified filename for cfile', $r->filename); 
  return HTTP_NOT_FOUND;   return HTTP_NOT_FOUND;
     }      }
   
     unless ($fn) {       unless ($fn) { 
  &Debug($r, "loncfile::handler - doctored url is empty");   &Debug($r, "loncfile::handler - doctored url is empty");
  $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.   $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
        ' trying to cfile non-existing file', $r->filename);          ' trying to cfile non-existing file', $r->filename); 
  return HTTP_NOT_FOUND;   return HTTP_NOT_FOUND;
     }       } 
Line 1229  sub handler { Line 1229  sub handler {
    "loncfile::handler constructaccess uname = $uname domain = $udom");     "loncfile::handler constructaccess uname = $uname domain = $udom");
     unless (($uname) && ($udom)) {      unless (($uname) && ($udom)) {
  $r->log_reason($uname.' at '.$udom.   $r->log_reason($uname.' at '.$udom.
        ' trying to manipulate file '.$ENV{'form.filename'}.         ' trying to manipulate file '.$env{'form.filename'}.
        ' ('.$fn.') - not authorized',          ' ('.$fn.') - not authorized', 
        $r->filename);          $r->filename); 
  return HTTP_NOT_ACCEPTABLE;   return HTTP_NOT_ACCEPTABLE;
Line 1239  sub handler { Line 1239  sub handler {
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
   
     if ( ($ENV{'form.action'} eq 'newdir') && ($ENV{'form.phase'} eq 'two') && ( ($ENV{'form.callingmode'} eq 'testbank') || ($ENV{'form.callingmode'} eq 'imsimport') ) ) {      if ( ($env{'form.action'} eq 'newdir') && ($env{'form.phase'} eq 'two') && ( ($env{'form.callingmode'} eq 'testbank') || ($env{'form.callingmode'} eq 'imsimport') ) ) {
  my $newdirname = $ENV{'form.newfilename'};   my $newdirname = $env{'form.newfilename'};
  $r->print('<html><head><title>LON-CAPA Construction Space</title><script language="Javascript">');   $r->print('<html><head><title>LON-CAPA Construction Space</title><script language="Javascript">');
  $r->print(qq|   $r->print(qq|
 function writeDone() {  function writeDone() {
Line 1261  function writeDone() { Line 1261  function writeDone() {
       
     $r->print('<h3>'.&mt('Location').': '.&display($fn).'</h3>');      $r->print('<h3>'.&mt('Location').': '.&display($fn).'</h3>');
       
     if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) {      if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
  $r->print('<h3><font color="red">'.&mt('Co-Author').': '.$uname.' at '.$udom.   $r->print('<h3><font color="red">'.&mt('Co-Author').': '.$uname.' at '.$udom.
   '</font></h3>');    '</font></h3>');
     }      }
   
   
     &Debug($r, "loncfile::handler Form action is $ENV{'form.action'} ");      &Debug($r, "loncfile::handler Form action is $env{'form.action'} ");
     if ($ENV{'form.action'} eq 'delete') {      if ($env{'form.action'} eq 'delete') {
       $r->print('<h3>'.&mt('Delete').'</h3>');        $r->print('<h3>'.&mt('Delete').'</h3>');
     } elsif ($ENV{'form.action'} eq 'rename') {      } elsif ($env{'form.action'} eq 'rename') {
  $r->print('<h3>'.&mt('Rename').'</h3>');   $r->print('<h3>'.&mt('Rename').'</h3>');
     } elsif ($ENV{'form.action'} eq 'move') {      } elsif ($env{'form.action'} eq 'move') {
  $r->print('<h3>'.&mt('Move').'</h3>');   $r->print('<h3>'.&mt('Move').'</h3>');
     } elsif ($ENV{'form.action'} eq 'newdir') {      } elsif ($env{'form.action'} eq 'newdir') {
  $r->print('<h3>'.&mt('New Directory').'</h3>');   $r->print('<h3>'.&mt('New Directory').'</h3>');
     } elsif ($ENV{'form.action'} eq 'decompress') {      } elsif ($env{'form.action'} eq 'decompress') {
  $r->print('<h3>'.&mt('Decompress').'</h3>');   $r->print('<h3>'.&mt('Decompress').'</h3>');
     } elsif ($ENV{'form.action'} eq 'copy') {      } elsif ($env{'form.action'} eq 'copy') {
  $r->print('<h3>'.&mt('Copy').'</h3>');   $r->print('<h3>'.&mt('Copy').'</h3>');
     } elsif ($ENV{'form.action'} eq 'newfile' ||      } elsif ($env{'form.action'} eq 'newfile' ||
      $ENV{'form.action'} eq 'newhtmlfile' ||       $env{'form.action'} eq 'newhtmlfile' ||
      $ENV{'form.action'} eq 'newproblemfile' ||       $env{'form.action'} eq 'newproblemfile' ||
      $ENV{'form.action'} eq 'newpagefile' ||       $env{'form.action'} eq 'newpagefile' ||
      $ENV{'form.action'} eq 'newsequencefile' ||       $env{'form.action'} eq 'newsequencefile' ||
      $ENV{'form.action'} eq 'newrightsfile' ||       $env{'form.action'} eq 'newrightsfile' ||
      $ENV{'form.action'} eq 'newstyfile' ||       $env{'form.action'} eq 'newstyfile' ||
              $ENV{'form.action'} eq 'newlibraryfile' ||               $env{'form.action'} eq 'newlibraryfile' ||
      $ENV{'form.action'} eq 'Select Action' ) {       $env{'form.action'} eq 'Select Action' ) {
  $r->print('<h3>'.&mt('New Resource').'</h3>');   $r->print('<h3>'.&mt('New Resource').'</h3>');
     } else {      } else {
  $r->print('<p>'.&mt('Unknown Action').' '.$ENV{'form.action'}.' </p></body></html>');   $r->print('<p>'.&mt('Unknown Action').' '.$env{'form.action'}.' </p></body></html>');
  return OK;     return OK;  
     }      }
     if ($ENV{'form.phase'} eq 'two') {      if ($env{'form.phase'} eq 'two') {
  &Debug($r, "loncfile::handler  entering phase2");   &Debug($r, "loncfile::handler  entering phase2");
  &phasetwo($r,$fn,$uname,$udom);   &phasetwo($r,$fn,$uname,$udom);
     } else {      } else {

Removed from v.1.66  
changed lines
  Added in v.1.67


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>