Diff for /loncom/auth/lonacc.pm between versions 1.101 and 1.107

version 1.101, 2006/09/19 20:36:27 version 1.107, 2007/01/31 16:48:54
Line 36  use Apache::lonnet; Line 36  use Apache::lonnet;
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::restrictedaccess();  use Apache::restrictedaccess();
   use Apache::blockedaccess(); 
 use CGI::Cookie();  use CGI::Cookie();
 use Fcntl qw(:flock);  use Fcntl qw(:flock);
 use LONCAPA;  use LONCAPA;
Line 159  sub sso_login { Line 160  sub sso_login {
     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)/) {
    &Apache::lonnet::logthis(" SSO authorized user $user ");
  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');
               $env{'request.sso.login'} = 1;
               if (defined($r->dir_config("lonSSOReloginServer"))) {
                   $env{'request.sso.reloginserver'} =
                       $r->dir_config('lonSSOReloginServer');
               }
     $r->internal_redirect('/adm/switchserver');      $r->internal_redirect('/adm/switchserver');
     $r->set_handlers('PerlHandler'=> undef);      $r->set_handlers('PerlHandler'=> undef);
  } else {   } else {
Line 174  sub sso_login { Line 181  sub sso_login {
       'server'    => $r->dir_config('lonHostID'),        'server'    => $r->dir_config('lonHostID'),
       'sso.login' => 1        'sso.login' => 1
       );        );
               if (defined($r->dir_config("lonSSOReloginServer"))) {
                   $info{'sso.reloginserver'} = 
                       $r->dir_config('lonSSOReloginServer'); 
               }
     my $token =       my $token = 
  &Apache::lonnet::tmpput(\%info,   &Apache::lonnet::tmpput(\%info,
  $r->dir_config('lonHostID'));   $r->dir_config('lonHostID'));
Line 183  sub sso_login { Line 194  sub sso_login {
  }   }
  return OK;   return OK;
     } elsif (defined($r->dir_config('lonSSOUserUnknownRedirect'))) {      } elsif (defined($r->dir_config('lonSSOUserUnknownRedirect'))) {
    &Apache::lonnet::logthis(" SSO authorized unknown user $user ");
           $r->subprocess_env->set('SSOUserUnknown' => $user);
           $r->subprocess_env->set('SSOUserDomain' => $domain);
  $r->internal_redirect($r->dir_config('lonSSOUserUnknownRedirect'));   $r->internal_redirect($r->dir_config('lonSSOUserUnknownRedirect'));
  $r->set_handlers('PerlHandler'=> undef);   $r->set_handlers('PerlHandler'=> undef);
  return OK;   return OK;
Line 200  sub handler { Line 214  sub handler {
   
     my $handle;      my $handle;
     if ($lonid) {      if ($lonid) {
  $handle=$lonid->value;   $handle=&LONCAPA::clean_handle($lonid->value);
         $handle=~s/\W//g;  
     }      }
   
     my $result = &sso_login($r,$lonid,$handle);      my $result = &sso_login($r,$lonid,$handle);
Line 257  sub handler { Line 270  sub handler {
  &Apache::restrictedaccess::setup_handler($r);   &Apache::restrictedaccess::setup_handler($r);
  return OK;   return OK;
     }      }
               if ($access eq 'B') {
                   &Apache::blockedaccess::setup_handler($r);
                   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";   $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied";
  return HTTP_NOT_ACCEPTABLE;    return HTTP_NOT_ACCEPTABLE; 

Removed from v.1.101  
changed lines
  Added in v.1.107


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