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

version 1.124, 2008/12/31 20:22:12 version 1.126, 2009/07/23 17:40:29
Line 278  sub sso_login { Line 278  sub sso_login {
   
     my ($user) = ($r->user =~ m/([a-zA-Z0-9_\-@.]*)/);      my ($user) = ($r->user =~ m/([a-zA-Z0-9_\-@.]*)/);
   
       my $query = $r->args;
       my %form;
       if ($query) {
           foreach my $pair (split(/&/,$query)) {
               my ($name, $value) = split(/=/,$pair);
               $name = &unescape($name);
               if (($name eq 'role') || ($name eq 'symb')) {
                   $value =~ tr/+/ /;
                   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
                   $form{$name} = $value;
               }
           }
       }
   
     my $domain = $r->dir_config('lonDefDomain');      my $domain = $r->dir_config('lonDefDomain');
     my $home=&Apache::lonnet::homeserver($user,$domain);      my $home=&Apache::lonnet::homeserver($user,$domain);
     if ($home !~ /(con_lost|no_host|no_such_host)/) {      if ($home !~ /(con_lost|no_host|no_such_host)/) {
Line 285  sub sso_login { Line 299  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');      &Apache::lonauth::success($r,$user,$domain,$home,'noredirect','',\%form);
             $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 302  sub sso_login { Line 316  sub sso_login {
       'server'    => $r->dir_config('lonHostID'),        'server'    => $r->dir_config('lonHostID'),
       'sso.login' => 1        'sso.login' => 1
       );        );
               foreach my $item ('role','symb') {
                   if (exists($form{$item})) {
                       $info{$item} = $form{$item};
                   }
               }
             if ($r->dir_config("ssodirecturl") == 1) {              if ($r->dir_config("ssodirecturl") == 1) {
                 $info{'origurl'} = $r->uri;                  $info{'origurl'} = $r->uri;
             }              }
Line 449  sub handler { Line 468  sub handler {
  if ($env{'request.course.id'}) {   if ($env{'request.course.id'}) {
     &Apache::lonnet::countacc($requrl);      &Apache::lonnet::countacc($requrl);
     $requrl=~/\.(\w+)$/;      $requrl=~/\.(\w+)$/;
               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|navmaps|smppg|bulletinboard)(\?|$ )/x) ||
  ($requrl=~/^\/adm\/wrapper\//) ||   ($requrl=~/^\/adm\/wrapper\//) ||
Line 456  sub handler { Line 476  sub handler {
  ($requrl=~m|\.problem/smpedit$|) ||   ($requrl=~m|\.problem/smpedit$|) ||
  ($requrl=~/^\/public\/.*\/syllabus$/)) {   ($requrl=~/^\/public\/.*\/syllabus$/)) {
 # ------------------------------------- This is serious stuff, get symb and log  # ------------------------------------- This is serious stuff, get symb and log
  my $query=$r->args;  
  my $symb;   my $symb;
  if ($query) {   if ($query) {
     &Apache::loncommon::get_unprocessed_cgi($query,['symb']);      &Apache::loncommon::get_unprocessed_cgi($query,['symb']);
Line 503  sub handler { Line 522  sub handler {
 # ------------------------------------------------------- This is other content  # ------------------------------------------------------- This is other content
  &Apache::lonnet::courseacclog($requrl);       &Apache::lonnet::courseacclog($requrl);    
     }      }
               my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};;
               my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};;
               if ($requrl =~ m{^/+uploaded/\Q$cdom\E/\Q$cnum\E/docs/.+\.html?$}) {
                   if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
                       if ($query) {
                           &Apache::loncommon::get_unprocessed_cgi($query,['forceedit']);
                           if ($env{'form.forceedit'}) {
                               $env{'request.state'} = 'edit';
                           }
                       }
                   }
               }
  }   }
  return OK;   return OK;
     }      }

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


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