Diff for /loncom/publisher/loncfile.pm between versions 1.17 and 1.19

version 1.17, 2002/09/02 20:06:57 version 1.19, 2002/10/28 23:23:41
Line 88  use strict; Line 88  use strict;
 use Apache::File;  use Apache::File;
 use File::Basename;  use File::Basename;
 use File::Copy;  use File::Copy;
   use HTML::Entities();
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
 use Apache::loncacc;  use Apache::loncacc;
 use Apache::Log ();  use Apache::Log ();
Line 492  sub Rename1 { Line 493  sub Rename1 {
     my $newfilename = $ENV{'form.newfilename'};      my $newfilename = $ENV{'form.newfilename'};
     $request->print(&checksuffix($filename, $newfilename));      $request->print(&checksuffix($filename, $newfilename));
     $request->print(&exists($user, $domain, $dir, $newfilename));      $request->print(&exists($user, $domain, $dir, $newfilename));
       my $dest=&SimplifyDir($dir,$newfilename);
     $request->print('<input type=hidden name=newfilename value="'.      $request->print('<input type=hidden name=newfilename value="'.
     $newfilename.      $newfilename.
     '"><p>Rename <tt>'.$filename.'</tt> to <tt>'.      '"><p>Rename <tt>'.$filename.'</tt><br /> to <tt>'.
     $dir.'/'.$newfilename.'</tt>?</p>');      $dest.'</tt>?</p>');
     &CloseForm1($request, $cancelurl);      &CloseForm1($request, $cancelurl);
  } else {   } else {
     $request->print('<p>No new filename specified</p></form>');      $request->print('<p>No new filename specified</p></form>');
Line 586  sub Copy1 { Line 588  sub Copy1 {
   $cancelurl    =~ s/\/public_html//;    $cancelurl    =~ s/\/public_html//;
           
   
   
   if(-e $filename) {    if(-e $filename) {
     $request->print(&checksuffix($filename,$newfilename));      $request->print(&checksuffix($filename,$newfilename));
     $request->print(&exists($user, $domain, $dir, $newfilename));      $request->print(&exists($user, $domain, $dir, $newfilename));
       my $dest=&SimplifyDir($dir,$newfilename);
     $request->print('<input type = hidden name = newfilename value = "'.      $request->print('<input type = hidden name = newfilename value = "'.
     $dir.'/'.$newfilename.      $dir.'/'.$newfilename.
     '"><p>Copy <tt>'.$filename.'</tt> to'.      '"><p>Copy <tt>'.$filename.'</tt><br />  to '.
     '<tt>'.$dir.'/'.$newfilename.'</tt>/?</p>');      '<tt>'.$dest.'</tt>?</p>');
     &CloseForm1($request, $cancelurl);      &CloseForm1($request, $cancelurl);
   } else {    } else {
     $request->print('<p>No such file <tt>'.$filename.'</p></form>');      $request->print('<p>No such file <tt>'.$filename.'</p></form>');
Line 602  sub Copy1 { Line 604  sub Copy1 {
   
 =pod  =pod
   
   =item SimplifyDir
   
     Removes all extra / and all .. references
   
   Parameters:
   
   =over 4
   
   =item $dir - string [in] a directory name
   
   =item $file - string [in] a file reference relative to $dir
   
   =back
   
   Results: the concatenated path.
   
   =cut
   
   sub SimplifyDir {
       my ($dir,$file) = @_;
       my $location = $dir. '/'.$file;
       $location=~s://+:/:g; # remove duplicate /
       while ($location=~m:/\.\./:) {$location=~s:/[^/]+/\.\./:/:g;}#remove dir/..
       return $location;
   }
   
   =pod
   
 =item NewDir1  =item NewDir1
     
   Does all phase 1 processing of directory creation:    Does all phase 1 processing of directory creation:
Line 1019  sub phasetwo { Line 1049  sub phasetwo {
     $dest =~ s/\/home\//\/priv\//;      $dest =~ s/\/home\//\/priv\//;
     $dest =~ s/\/public_html//;      $dest =~ s/\/public_html//;
           
     my $base = &Apache::lonnet::escape(&File::Basename::basename($dest));      my $base = &File::Basename::basename($dest);
     my $dpath= &File::Basename::dirname($dest);      my $dpath= &File::Basename::dirname($dest);
     $dest = $dpath.'/'.$base;      $dest = &HTML::Entities::encode($dpath.'/'.$base);
   
   
     &Debug($r, "Final url after rewrite: $dest");      &Debug($r, "Final url after rewrite: $dest");

Removed from v.1.17  
changed lines
  Added in v.1.19


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