Diff for /loncom/publisher/loncfile.pm between versions 1.3 and 1.7

version 1.3, 2001/06/23 20:09:06 version 1.7, 2001/12/04 15:34:57
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # Handler to rename files, etc, in construction space  # Handler to rename files, etc, in construction space
 #  #
   # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
   #
 # (Handler to retrieve an old version of a file  # (Handler to retrieve an old version of a file
 #  #
 # (Publication Handler  # (Publication Handler
Line 13 Line 38
 # 03/23 Guy Albertelli  # 03/23 Guy Albertelli
 # 03/24,03/29 Gerd Kortemeyer)  # 03/24,03/29 Gerd Kortemeyer)
 #  #
 # 03/31,04/03,05/02,05/09,06/23 Gerd Kortemeyer)  # 03/31,04/03,05/02,05/09,06/23,06/24 Gerd Kortemeyer)
 #  #
 # 06/23 Gerd Kortemeyer  # 06/23 Gerd Kortemeyer
   
Line 52  sub phaseone { Line 77  sub phaseone {
    $r->print(     $r->print(
                     '<p><font color=red>Warning: target file exists!</font>');                      '<p><font color=red>Warning: target file exists!</font>');
                }                 }
        $r->print('<p>Rename <tt>'.$fn.'</tt> to <tt>'.         $r->print('<input type=hidden name=newfilename value="'.
                            $ENV{'form.newfilename'}.
                            '"><p>Rename <tt>'.$fn.'</tt> to <tt>'.
                          $dir.'/'.$ENV{'form.newfilename'}.'</tt>?');                           $dir.'/'.$ENV{'form.newfilename'}.'</tt>?');
     } else {      } else {
        $r->print('<p>No new filename specified.</form>');         $r->print('<p>No new filename specified.</form>');
Line 82  sub phaseone { Line 109  sub phaseone {
    $r->print(     $r->print(
                     '<p><font color=red>Warning: target file exists!</font>');                      '<p><font color=red>Warning: target file exists!</font>');
                }                 }
        $r->print('<p>Copy <tt>'.$fn.'</tt> to <tt>'.         $r->print('<input type=hidden name=newfilename value="'.
                            $ENV{'form.newfilename'}.
                            '"><p>Copy <tt>'.$fn.'</tt> to <tt>'.
                          $dir.'/'.$ENV{'form.newfilename'}.'</tt>?');                           $dir.'/'.$ENV{'form.newfilename'}.'</tt>?');
     } else {      } else {
        $r->print('<p>No new filename specified.</form>');         $r->print('<p>No new filename specified.</form>');
Line 93  sub phaseone { Line 122  sub phaseone {
             return;              return;
         }          }
     } elsif ($ENV{'form.action'} eq 'newdir') {      } elsif ($ENV{'form.action'} eq 'newdir') {
  if (-e $conspace) {          my $newdir='/home/'.$uname.'/public_html/'.
                      $fn.$ENV{'form.newfilename'};
    if (-e $newdir) {
             $r->print('<p>Directory exists.</form>');              $r->print('<p>Directory exists.</form>');
             return;              return;
         }          }
    $r->print('<input type=hidden name=newfilename value="'.
                     $ENV{'form.newfilename'}.
                     '"><p>Make new directory <tt>'.
                     $fn.$ENV{'form.newfilename'}.'</tt>?');
                 
     }      }
     $r->print('<p><input type=submit value=Continue></form>');       $r->print('<p><input type=submit value=Continue></form>'); 
Line 104  sub phaseone { Line 139  sub phaseone {
   
 sub phasetwo {  sub phasetwo {
     my ($r,$fn,$uname,$udom)=@_;      my ($r,$fn,$uname,$udom)=@_;
   
       $fn=~/(.*)\/([^\/]+)\.(\w+)$/;
       my $dir=$1;
       my $main=$2;
       my $suffix=$3;
   
       my $conspace='/home/'.$uname.'/public_html'.$fn;
   
     if ($ENV{'form.action'} eq 'rename') {      if ($ENV{'form.action'} eq 'rename') {
    if (-e $conspace) {
       if ($ENV{'form.newfilename'}) {
                  unless (rename('/home/'.$uname.'/public_html'.$fn,
             '/home/'.$uname.'/public_html'.$dir.'/'.$ENV{'form.newfilename'})) {
       $r->print('<font color=red>Error: '.$!.'</font>');
                  }
               }
           } else {
       $r->print('<p>No such file.</form>');
               return;
           }
     } elsif ($ENV{'form.action'} eq 'delete') {       } elsif ($ENV{'form.action'} eq 'delete') { 
    if (-e $conspace) {
               unless (unlink('/home/'.$uname.'/public_html'.$fn)) {
          $r->print('<font color=red>Error: '.$!.'</font>');
               }
           } else {
       $r->print('<p>No such file.</form>');
               return;
           }
     } elsif ($ENV{'form.action'} eq 'copy') {       } elsif ($ENV{'form.action'} eq 'copy') { 
    if (-e $conspace) {
       if ($ENV{'form.newfilename'}) {
                  unless (copy('/home/'.$uname.'/public_html'.$fn,
              '/home/'.$uname.'/public_html'.$dir.'/'.$ENV{'form.newfilename'})) {
             $r->print('<font color=red>Error: '.$!.'</font>');
                  }
       } else {
          $r->print('<p>No new filename specified.</form>');
                  return;
       }
           } else {
       $r->print('<p>No such file.</form>');
               return;
           }
     } elsif ($ENV{'form.action'} eq 'newdir') {      } elsif ($ENV{'form.action'} eq 'newdir') {
     }           my $newdir='/home/'.$uname.'/public_html/'.
                      $fn.$ENV{'form.newfilename'};
           unless (mkdir($newdir,0770)) {
       $r->print('<font color=red>Error: '.$!.'</font>');
           }
           $r->print('<h3><a href="/priv/'.$uname.$fn.'/">Done</a></h3>');
           return;
       }
       $r->print('<h3><a href="/priv/'.$uname.$dir.'/">Done</a></h3>');
 }  }
   
 sub handler {  sub handler {
Line 140  sub handler { Line 224  sub handler {
     &Apache::loncacc::constructaccess($fn,$r->dir_config('lonDefDomain'));      &Apache::loncacc::constructaccess($fn,$r->dir_config('lonDefDomain'));
   unless (($uname) && ($udom)) {    unless (($uname) && ($udom)) {
      $r->log_reason($uname.' at '.$udom.       $r->log_reason($uname.' at '.$udom.
          ' trying to publish 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 177  sub handler { Line 261  sub handler {
      return OK;         return OK;  
   }    }
   if ($ENV{'form.phase'} eq 'two') {    if ($ENV{'form.phase'} eq 'two') {
 #      &phasetwo($r,$fn,$uname,$udom);        &phasetwo($r,$fn,$uname,$udom);
   } else {    } else {
       &phaseone($r,$fn,$uname,$udom);        &phaseone($r,$fn,$uname,$udom);
   }    }

Removed from v.1.3  
changed lines
  Added in v.1.7


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