Diff for /loncom/auth/lonacc.pm between versions 1.126 and 1.132

version 1.126, 2009/07/23 17:40:29 version 1.132, 2010/03/17 00:06:14
Line 281  sub sso_login { Line 281  sub sso_login {
     my $query = $r->args;      my $query = $r->args;
     my %form;      my %form;
     if ($query) {      if ($query) {
         foreach my $pair (split(/&/,$query)) {          my @items = ('role','symb');
             my ($name, $value) = split(/=/,$pair);          &Apache::loncommon::get_unprocessed_cgi($query,\@items);
             $name = &unescape($name);          foreach my $item (@items) {
             if (($name eq 'role') || ($name eq 'symb')) {              if (defined($env{'form.'.$item})) {
                 $value =~ tr/+/ /;                  $form{$item} = $env{'form.'.$item};
                 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;  
                 $form{$name} = $value;  
             }              }
         }          }
     }      }
Line 299  sub sso_login { Line 297  sub sso_login {
  if ($r->dir_config("lonBalancer") eq 'yes') {   if ($r->dir_config("lonBalancer") eq 'yes') {
     # login but immeaditly go to switch server to find us a new       # login but immeaditly go to switch server to find us a new 
     # machine      # machine
     &Apache::lonauth::success($r,$user,$domain,$home,'noredirect','',\%form);      &Apache::lonauth::success($r,$user,$domain,$home,'noredirect');
             $env{'request.sso.login'} = 1;              $env{'request.sso.login'} = 1;
             if (defined($r->dir_config("lonSSOReloginServer"))) {              if (defined($r->dir_config("lonSSOReloginServer"))) {
                 $env{'request.sso.reloginserver'} =                  $env{'request.sso.reloginserver'} =
Line 413  sub handler { Line 411  sub handler {
  }   }
  $env{'request.filename'} = $r->filename;   $env{'request.filename'} = $r->filename;
  $env{'request.noversionuri'} = &Apache::lonnet::deversion($requrl);   $env{'request.noversionuri'} = &Apache::lonnet::deversion($requrl);
           if ($requrl =~ m{^/adm/wrapper/ext/}) {
               my $query = $r->args;
               if ($query) {
                   my $preserved;
                   foreach my $pair (split(/&/,$query)) {
                       my ($name, $value) = split(/=/,$pair);
                       unless ($name eq 'symb') {
                           $preserved .= $pair.'&';
                       }
                   }
                   $preserved =~ s/\&$//;
                   if ($preserved) {
                       $env{'request.external.querystring'} = $preserved;
                   }
               }
           }
 # -------------------------------------------------------- Load POST parameters  # -------------------------------------------------------- Load POST parameters
   
  &Apache::lonacc::get_posted_cgi($r);   &Apache::lonacc::get_posted_cgi($r);
Line 435  sub handler { Line 449  sub handler {
                 return OK;                  return OK;
             }              }
     if (($access ne '2') && ($access ne 'F')) {      if (($access ne '2') && ($access ne 'F')) {
  $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";                  if ($requrl =~ m{^/res/}) {
  return HTTP_NOT_ACCEPTABLE;                       $access = &Apache::lonnet::allowed('bro',$requrl);
                       if ($access ne 'F') {
                           if ($requrl eq '/res/lib/templates/simpleproblem.problem/smpedit') {
                               $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 {
       $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";
       return HTTP_NOT_ACCEPTABLE;
                   }
     }      }
  }   }
  if ($requrl =~ m|^/prtspool/|) {   if ($requrl =~ m|^/prtspool/|) {
Line 459  sub handler { Line 489  sub handler {
     $env{'user.domain'} eq 'public' &&      $env{'user.domain'} eq 'public' &&
     $requrl !~ m{^/+(res|public|uploaded)/} &&      $requrl !~ m{^/+(res|public|uploaded)/} &&
     $requrl !~ m{^/adm/[^/]+/[^/]+/aboutme/portfolio$ }x &&      $requrl !~ m{^/adm/[^/]+/[^/]+/aboutme/portfolio$ }x &&
           $requrl !~ m{^/adm/blockingstatus/.*$} &&
     $requrl !~ m{^/+adm/(help|logout|restrictedaccess|randomlabel\.png)}) {      $requrl !~ m{^/+adm/(help|logout|restrictedaccess|randomlabel\.png)}) {
     $env{'request.querystring'}=$r->args;      $env{'request.querystring'}=$r->args;
     $env{'request.firsturl'}=$requrl;      $env{'request.firsturl'}=$requrl;

Removed from v.1.126  
changed lines
  Added in v.1.132


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