Diff for /loncom/publisher/lonpubdir.pm between versions 1.182 and 1.183

version 1.182, 2023/11/28 22:28:05 version 1.183, 2024/01/10 20:07:37
Line 36  use Apache::Constants qw(:common :http : Line 36  use Apache::Constants qw(:common :http :
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::londiff();  use Apache::londiff();
   use Apache::lonpublisher();
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonmsg;  use Apache::lonmsg;
 use Apache::lonmenu;  use Apache::lonmenu;
Line 86  sub handler { Line 87  sub handler {
     my $linkdir='/priv'.$thisdisfn;      # Full URL name of constr space.      my $linkdir='/priv'.$thisdisfn;      # Full URL name of constr space.
   
     my $cstr = 'author';      my $cstr = 'author';
     my ($crsauthor,$crstype);      my ($crsauthor,$crstype,$crstoplevel,$cdom,$cnum);
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
         my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};          $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
         my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};          $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
         if ($thisdisfn =~ m{^/\Q$cdom/$cnum\E}) {          if ($thisdisfn =~ m{^/\Q$cdom/$cnum\E}) {
             $crsauthor = 1;              $crsauthor = 1;
             $cstr = 'course';              $cstr = 'course';
             $crstype = &Apache::loncommon::course_type();              $crstype = &Apache::loncommon::course_type();
               $crstoplevel = "$docroot/priv/$cdom/$cnum";
         }          }
     }      }
   
Line 108  sub handler { Line 110  sub handler {
   
     &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota, $crsauthor);      &startpage($r, $uname, $udom, $thisdisfn, $current_disk_usage, $disk_quota, $crsauthor);
   
       my @files;
     if (!-d $fn) {      if (!-d $fn) {
         if (-e $fn) {          if (($crsauthor) && ($fn eq $crstoplevel)) {
             $r->print('<p class="LC_info">'.&mt('Requested item is a file not a directory.').'</p>');              my $path = "$docroot/priv/$cdom/$cnum";
               my $rightsfile = 'default.rights';
               my $sourcerights = "$path/$rightsfile";
               &Apache::loncommon::crsauthor_rights($rightsfile,$path,$docroot,$cnum,$cdom);
               my $targetrights = $docroot."/res/$cdom/$cnum/$rightsfile";
               if ((-e $sourcerights) && (-e "$sourcerights.meta")) {
                   if (!-e "$docroot/res/$cdom") {
                       mkdir("$docroot/res/$cdom",0755);
                   }
                   if (!-e "$docroot/res/$cdom/$cnum") {
                       mkdir("$docroot/res/$cdom/$cnum",0755);
                   }
                   if ((-e "$docroot/res/$cdom/$cnum") && (!-e $targetrights)) {
                       my $nokeyref = &Apache::lonpublisher::getnokey($r->dir_config('lonIncludes'));
                       my $output = &Apache::lonpublisher::batchpublish($r,$sourcerights,$targetrights,$nokeyref,1);
                   }
               } else {
                   $r->print('<p class="LC_info">'.&mt('The requested subdirectory does not exist.').'</p>');
                   return OK;
               }
         } else {          } else {
             $r->print('<p class="LC_info">'.&mt('The requested subdirectory does not exist.').'</p>');              if (-e $fn) {
                   $r->print('<p class="LC_info">'.&mt('Requested item is a file not a directory.').'</p>');
               } else {
                   $r->print('<p class="LC_info">'.&mt('The requested subdirectory does not exist.').'</p>');
               }
               $r->print(&Apache::loncommon::end_page());
               return OK;
         }          }
         $r->print(&Apache::loncommon::end_page());  
         return OK;  
     }  
     my @files;  
     if (opendir(DIR,$fn)) {  
         @files = grep(!/^\.+$/,readdir(DIR));  
         closedir(DIR);  
     } else {      } else {
         $r->print('<p class="LC_error">'.&mt('Could not open directory.').'</p>');          if (opendir(DIR,$fn)) {
         $r->print(&Apache::loncommon::end_page());              @files = grep(!/^\.+$/,readdir(DIR));
         return OK;              closedir(DIR);
           } else {
               $r->print('<p class="LC_error">'.&mt('Could not open directory.').'</p>');
               $r->print(&Apache::loncommon::end_page());
               return OK;
           }
     }      }
   
     # Put out actions for directory, browse/upload + new file page.      # Put out actions for directory, browse/upload + new file page.

Removed from v.1.182  
changed lines
  Added in v.1.183


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