Diff for /loncom/auth/lonacc.pm between versions 1.130.6.1 and 1.135

version 1.130.6.1, 2011/11/18 22:41:02 version 1.135, 2010/10/29 20:41:49
Line 156  sub get_posted_cgi { Line 156  sub get_posted_cgi {
  for ($i=0;$i<=$#lines;$i++) {   for ($i=0;$i<=$#lines;$i++) {
     if ($lines[$i]=~/^--\Q$contentsep\E/) {      if ($lines[$i]=~/^--\Q$contentsep\E/) {
  if ($name) {   if ($name) {
     chomp($value);      $value=~s/[\r\n]+$//;
                     if (ref($fields) eq 'ARRAY') {                      if (ref($fields) eq 'ARRAY') {
                         next if (!grep(/^\Q$name\E$/,@{$fields}));                          next if (!grep(/^\Q$name\E$/,@{$fields}));
                     }                      }
Line 417  sub handler { Line 417  sub handler {
                 my $preserved;                  my $preserved;
                 foreach my $pair (split(/&/,$query)) {                  foreach my $pair (split(/&/,$query)) {
                     my ($name, $value) = split(/=/,$pair);                      my ($name, $value) = split(/=/,$pair);
                     unless (($name eq 'symb') || ($name eq 'wrapperdisplay')) {                      unless ($name eq 'symb') {
                         $preserved .= $pair.'&';                          $preserved .= $pair.'&';
                     }                      }
                 }                  }
Line 452  sub handler { Line 452  sub handler {
                 if ($requrl =~ m{^/res/}) {                  if ($requrl =~ m{^/res/}) {
                     $access = &Apache::lonnet::allowed('bro',$requrl);                      $access = &Apache::lonnet::allowed('bro',$requrl);
                     if ($access ne 'F') {                      if ($access ne 'F') {
                         $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";                          if ($requrl eq '/res/lib/templates/simpleproblem.problem/smpedit') {
                         return HTTP_NOT_ACCEPTABLE;                              $access = &Apache::lonnet::allowed('bre','/res/lib/templates/simpleproblem.problem');
                               if ($access ne 'F') {
                                   $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";
                                   return HTTP_NOT_ACCEPTABLE;
                               }
                           } else {
                               $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";
                               return HTTP_NOT_ACCEPTABLE;
                           }
                     }                      }
                 } else {                  } else {
     $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";      $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";
Line 489  sub handler { Line 497  sub handler {
  }   }
 # ------------------------------------------------------------- This is allowed  # ------------------------------------------------------------- This is allowed
  if ($env{'request.course.id'}) {   if ($env{'request.course.id'}) {
             my $skiplogging;      &Apache::lonnet::countacc($requrl);
             if ((!&Apache::loncommon::needs_gci_custom()) &&    
                 ($env{'course.'.$env{'request.course.id'}.'.internal.courseowner'} ne $env{'user.name'}.':'.$env{'user.domain'})) {  
                 $skiplogging = 1;  
             }  
             unless ($skiplogging) {  
         &Apache::lonnet::countacc($requrl);  
             }  
     $requrl=~/\.(\w+)$/;      $requrl=~/\.(\w+)$/;
             my $query=$r->args;              my $query=$r->args;
     if ((&Apache::loncommon::fileembstyle($1) eq 'ssi') ||      if ((&Apache::loncommon::fileembstyle($1) eq 'ssi') ||
  ($requrl=~/^\/adm\/.*\/(aboutme|navmaps|smppg|bulletinboard)(\?|$ )/x) ||   ($requrl=~/^\/adm\/.*\/(aboutme|smppg|bulletinboard)(\?|$ )/x) ||
  ($requrl=~/^\/adm\/wrapper\//) ||   ($requrl=~/^\/adm\/wrapper\//) ||
  ($requrl=~m|^/adm/coursedocs/showdoc/|) ||   ($requrl=~m|^/adm/coursedocs/showdoc/|) ||
  ($requrl=~m|\.problem/smpedit$|) ||   ($requrl=~m|\.problem/smpedit$|) ||
  ($requrl=~/^\/public\/.*\/syllabus$/)) {   ($requrl=~/^\/public\/.*\/syllabus$/) ||
                   ($requrl=~/^\/adm\/(viewclasslist|navmaps)$/) ||
                   ($requrl=~/^\/adm\/.*\/aboutme\/portfolio(\?|$)/)) {
 # ------------------------------------- This is serious stuff, get symb and log  # ------------------------------------- This is serious stuff, get symb and log
  my $symb;   my $symb;
  if ($query) {   if ($query) {
Line 519  sub handler { Line 522  sub handler {
   'last_known' =>[$murl,$mid]);    'last_known' =>[$murl,$mid]);
     } elsif ((&Apache::lonnet::symbverify($symb,$requrl)) ||      } elsif ((&Apache::lonnet::symbverify($symb,$requrl)) ||
      (($requrl=~m|(.*)/smpedit$|) &&       (($requrl=~m|(.*)/smpedit$|) &&
       &Apache::lonnet::symbverify($symb,$1))) {        &Apache::lonnet::symbverify($symb,$1)) ||
                                (($requrl=~m|(.*/aboutme)/portfolio$|) &&
                                 &Apache::lonnet::symbverify($symb,$1))) {
  my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb);   my ($map,$mid,$murl)=&Apache::lonnet::decode_symb($symb);
  &Apache::lonnet::symblist($map,$murl => [$murl,$mid],   &Apache::lonnet::symblist($map,$murl => [$murl,$mid],
   'last_known' =>[$murl,$mid]);    'last_known' =>[$murl,$mid]);
Line 531  sub handler { Line 536  sub handler {
  return HTTP_NOT_ACCEPTABLE;    return HTTP_NOT_ACCEPTABLE; 
     }      }
  } else {   } else {
                       if ($requrl=~m{^(/adm/.*/aboutme)/portfolio$}) {
                           $requrl = $1;
                       }
     $symb=&Apache::lonnet::symbread($requrl);      $symb=&Apache::lonnet::symbread($requrl);
     if (&Apache::lonnet::is_on_map($requrl) && $symb &&      if (&Apache::lonnet::is_on_map($requrl) && $symb &&
  !&Apache::lonnet::symbverify($symb,$requrl)) {   !&Apache::lonnet::symbverify($symb,$requrl)) {
Line 547  sub handler { Line 555  sub handler {
     }      }
  }   }
  $env{'request.symb'}=$symb;   $env{'request.symb'}=$symb;
                 unless ($skiplogging) {   &Apache::lonnet::courseacclog($symb);
     &Apache::lonnet::courseacclog($symb);  
                 }  
     } else {      } else {
 # ------------------------------------------------------- This is other content  # ------------------------------------------------------- This is other content
                 unless ($skiplogging) {   &Apache::lonnet::courseacclog($requrl);    
     &Apache::lonnet::courseacclog($requrl);  
                 }  
     }      }
             my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};;              my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};;
             my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};;              my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};;

Removed from v.1.130.6.1  
changed lines
  Added in v.1.135


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