Diff for /loncom/publisher/loncfile.pm between versions 1.108 and 1.109

version 1.108, 2011/10/22 23:09:44 version 1.109, 2011/10/23 01:27:34
Line 272  sub exists { Line 272  sub exists {
     $creating ||= 'file';      $creating ||= 'file';
   
     my $published=$construct;      my $published=$construct;
     $published=~      $published=~s{^/home/httpd/html/priv/}{/home/httpd/html/res/};
  s{^/home/$user/public_html/}{/home/httpd/html/res/$domain/$user/};  
     my ($type,$result);      my ($type,$result);
     if ( -d $construct ) {      if ( -d $construct ) {
  return ('error','<p><span class="LC_error">'.&mt('Error: destination for operation is an existing directory.').'</span></p>');   return ('error','<p><span class="LC_error">'.&mt('Error: destination for operation is an existing directory.').'</span></p>');
Line 347  sub checksuffix { Line 346  sub checksuffix {
 }  }
   
 sub cleanDest {  sub cleanDest {
     my ($request,$dest,$subdir,$fn,$uname)=@_;      my ($request,$dest,$subdir,$fn,$uname,$udom)=@_;
     #remove bad characters      #remove bad characters
     my $foundbad=0;      my $foundbad=0;
     my $error='';      my $error='';
Line 362  sub cleanDest { Line 361  sub cleanDest {
     }      }
     if ($dest=~m|/|) {      if ($dest=~m|/|) {
  my ($newpath)=($dest=~m|(.*)/|);   my ($newpath)=($dest=~m|(.*)/|);
  ($newpath,$error)=&relativeDest($fn,$newpath,$uname);   ($newpath,$error)=&relativeDest($fn,$newpath,$uname,$udom);
  if (! -d "$newpath") {   if (! -d "$newpath") {
     $request->print('<p><span class="LC_warning">'      $request->print('<p><span class="LC_warning">'
                            .&mt("You have requested to create file in directory [_1] which doesn't exist. The requested directory path has been removed from the requested file name."                             .&mt("You have requested to create file in directory [_1] which doesn't exist. The requested directory path has been removed from the requested file name."
Line 391  sub cleanDest { Line 390  sub cleanDest {
 }  }
   
 sub relativeDest {  sub relativeDest {
     my ($fn,$newfilename,$uname)=@_;      my ($fn,$newfilename,$uname,$udom)=@_;
     my $error = '';      my $error = '';
     if ($newfilename=~/^\//) {      if ($newfilename=~/^\//) {
 # absolute, simply add path  # absolute, simply add path
  $newfilename='/home/'.$uname.'/public_html/';   $newfilename='/home/httpd/html/res/'.$udom.'/'.$uname.'/';
     } else {      } else {
  my $dir=$fn;   my $dir=$fn;
  $dir=~s/\/[^\/]+$//;   $dir=~s/\/[^\/]+$//;
Line 952  sub phaseone { Line 951  sub phaseone {
     my $doingdir=0;      my $doingdir=0;
     if ($env{'form.action'} eq 'newdir') { $doingdir=1; }      if ($env{'form.action'} eq 'newdir') { $doingdir=1; }
     my ($newfilename,$error) =       my ($newfilename,$error) = 
         &cleanDest($r,$env{'form.newfilename'},$doingdir,$fn,$uname);          &cleanDest($r,$env{'form.newfilename'},$doingdir,$fn,$uname,$udom);
     unless ($error) {      unless ($error) {
         ($newfilename,$error)=&relativeDest($fn,$newfilename,$uname);          ($newfilename,$error)=&relativeDest($fn,$newfilename,$uname,$udom);
     }      }
     if ($error) {      if ($error) {
         my $dirlist;          my $dirlist;

Removed from v.1.108  
changed lines
  Added in v.1.109


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