Diff for /loncom/homework/daxeopen.pm between versions 1.9 and 1.10

version 1.9, 2023/08/23 22:21:05 version 1.10, 2023/08/23 22:25:48
Line 42  use Apache::lonnet; Line 42  use Apache::lonnet;
 use Apache::pre_xml;  use Apache::pre_xml;
 use Apache::html_to_xml;  use Apache::html_to_xml;
 use Apache::post_xml;  use Apache::post_xml;
   use Apache::lonlocal;
   
 sub handler {  sub handler {
     my $request = shift;      my $request = shift;
Line 62  sub handler { Line 62  sub handler {
   
 sub convert_problem {  sub convert_problem {
     my ($uri, $request) = @_;      my ($uri, $request) = @_;
       
     if ($uri =~ m{^/priv/([^/]+)/([^/]+)/}) {      if ($uri =~ m{^/priv/([^/]+)/([^/]+)/}) {
         my ($domain, $user) = ($1, $2);          my ($domain, $user) = ($1, $2);
         my ($uname, $udom) = ($env{'user.name'}, $env{'user.domain'});          my ($uname, $udom) = ($env{'user.name'}, $env{'user.domain'});
         if (!defined $uname || !defined $udom || $domain ne $udom || $user ne $uname) {          if (!defined $uname || !defined $udom || $domain ne $udom || $user ne $uname) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Forbidden URI: $uri");              $request->print(&mt('Forbidden URI: [_1]',$uri));
             $request->status(403);              $request->status(403);
             return OK;              return OK;
         }          }
Line 95  sub convert_problem { Line 94  sub convert_problem {
         return OK;          return OK;
     } catch {      } catch {
         $request->content_type('text/plain');          $request->content_type('text/plain');
         $request->print("convert failed for $file: $_");          $request->print(&mt('convert failed for [_1]:',$file)." $_");
         $request->status(406);          $request->status(406);
         return OK;          return OK;
     };      };
Line 111  sub directory_listing { Line 110  sub directory_listing {
         $res .= "<directory name=\"res\"/>\n";          $res .= "<directory name=\"res\"/>\n";
     } elsif ($uri !~ /^\/(priv|res)\//) {      } elsif ($uri !~ /^\/(priv|res)\//) {
         $request->content_type('text/plain');          $request->content_type('text/plain');
         $request->print("Not found: $uri");          $request->print(&mt('Not found: [_1]',$uri));
         $request->status(404);          $request->status(404);
         return OK;          return OK;
     } elsif ($uri =~ m{^/res/}) {      } elsif ($uri =~ m{^/res/}) {
Line 119  sub directory_listing { Line 118  sub directory_listing {
  my ($listref, $listerror) = &Apache::lonnet::dirlist($uri);   my ($listref, $listerror) = &Apache::lonnet::dirlist($uri);
  if ($listerror) {   if ($listerror) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("listing error: $listerror");              $request->print(&mt('listing error: [_1]',$listerror));
             $request->status(406);              $request->status(406);
             return OK;              return OK;
  } elsif ($uri =~ m{^/res/[^/]+/$} && scalar(@{$listref}) == 0) {   } elsif ($uri =~ m{^/res/[^/]+/$} && scalar(@{$listref}) == 0) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Not found: $uri");              $request->print(&mt('Not found: [_1]',$uri));
             $request->status(404);              $request->status(404);
             return OK;              return OK;
  }   }
Line 167  sub directory_listing { Line 166  sub directory_listing {
         my $udom = $env{'user.domain'};          my $udom = $env{'user.domain'};
         if (!defined $udom) {          if (!defined $udom) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Forbidden URI: $uri");              $request->print(&mt('Forbidden URI: [_1]',$uri));
             $request->status(403);              $request->status(403);
             return OK;              return OK;
         }          }
Line 178  sub directory_listing { Line 177  sub directory_listing {
         my ($uname, $udom) = ($env{'user.name'}, $env{'user.domain'});          my ($uname, $udom) = ($env{'user.name'}, $env{'user.domain'});
         if (!defined $uname || !defined $udom || $domain ne $udom) {          if (!defined $uname || !defined $udom || $domain ne $udom) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Forbidden URI: $uri");              $request->print(&mt('Forbidden URI: [_1]',$uri));
             $request->status(403);              $request->status(403);
             return OK;              return OK;
         }          }
Line 189  sub directory_listing { Line 188  sub directory_listing {
         my ($uname, $udom) = ($env{'user.name'}, $env{'user.domain'});          my ($uname, $udom) = ($env{'user.name'}, $env{'user.domain'});
         if (!defined $uname || !defined $udom || $domain ne $udom || $user ne $uname) {          if (!defined $uname || !defined $udom || $domain ne $udom || $user ne $uname) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Forbidden URI: $uri");              $request->print(&mt('Forbidden URI: [_1]',$uri));
             $request->status(403);              $request->status(403);
             return OK;              return OK;
         }          }
         my $dirpath = &Apache::lonnet::filelocation('', $uri);          my $dirpath = &Apache::lonnet::filelocation('', $uri);
         if (! -e $dirpath) {          if (! -e $dirpath) {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Not found: $uri");              $request->print(&mt('Not found: [_1]',$uri));
             $request->status(404);              $request->status(404);
             return OK;              return OK;
         }          }
Line 207  sub directory_listing { Line 206  sub directory_listing {
             closedir($dir);              closedir($dir);
         } else {          } else {
             $request->content_type('text/plain');              $request->content_type('text/plain');
             $request->print("Error opening directory: $dirpath");              $request->print(&mt('Error opening directory: [_1]',$dirpath));
             $request->status(403);              $request->status(403);
             return OK;              return OK;
         }          }
Line 238  sub directory_listing { Line 237  sub directory_listing {
         }          }
     } else {      } else {
         $request->content_type('text/plain');          $request->content_type('text/plain');
         $request->print("Not found: $uri");          $request->print(&mt('Not found: [_1]',$uri));
         $request->status(404);          $request->status(404);
         return OK;          return OK;
     }      }

Removed from v.1.9  
changed lines
  Added in v.1.10


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