Diff for /loncom/auth/checkauthen.pm between versions 1.10 and 1.21

version 1.10, 2006/11/23 01:49:41 version 1.21, 2018/12/24 14:29:48
Line 1 Line 1
 # The LearningOnline Network  # The LearningOnline Network
 # checks for a cokkie to authenticate a user  # checks for a cookie to authenticate a user
 #  #
 # $Id$  # $Id$
 #  #
Line 36  use Apache::lonnet; Line 36  use Apache::lonnet;
 sub handler {  sub handler {
     my ($r) = @_;      my ($r) = @_;
   
       if ($r->uri() =~ m{^/res/adm/pages/[^/]+\.(gif|png)$}) {
           if ($r->user() eq '') {
               $r->user('public:public');
           }
           return OK;
       }
   
       if (&Apache::lonnet::is_domainimage($r->uri)) {
           if ($r->user() eq '') {
               $r->user('public:public');
           }
           return OK;
       }
   
     if ($r->auth_type() ne 'LONCAPA') {      if ($r->auth_type() ne 'LONCAPA') {
  return DECLINED;   return DECLINED;
     }      }
Line 51  sub handler { Line 65  sub handler {
     if ($env{'user.name'} eq 'public'       if ($env{'user.name'} eq 'public' 
  && $env{'user.domain'} eq 'public') {   && $env{'user.domain'} eq 'public') {
  if ($env{'request.publicaccess'} ) {   if ($env{'request.publicaccess'} ) {
               if ($r->user() eq '') {
                   $r->user('public:public');
               }
     return OK;      return OK;
  } else {   } else {
     return $fail;      return $fail;
  }   }
     }      }
   
     my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));      my %user;
     my $lonid=$cookies{'lonID'};      my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user);
     my $handle;      if ($handle eq '') {
     if ($lonid) {  
       $handle=&LONCAPA::clean_handle($lonid->value);  
         $handle = $r->dir_config('lonIDsDir')."/$handle.id";  
     } else {  
         $handle = $env{'user.environment'};          $handle = $env{'user.environment'};
           if (($handle ne '') && ($r->user() eq '')) {
               if ($env{'user.domain'} eq $r->dir_config('lonDefDomain')) {
                   $r->user($env{'user.name'});
               } else {
                   $r->user($env{'user.name'}.':'.$env{'user.domain'});
               }
           }
     }      }
   
     if (($handle ne '') && (-e $handle)) {      if ($handle ne '') {
           if ($r->user() eq '') {
               if ($user{'domain'} eq $r->dir_config('lonDefDomain')) {
                   $r->user($user{'name'});
               } else {
                   $r->user($user{'name'}.':'.$user{'domain'});
               }
           }
         return OK;          return OK;
     }      }
       if (($fail == FORBIDDEN) &&
           (($r->uri eq '/adm/email') || ($r->uri eq '/adm/preferences') ||
            ($r->uri eq '/adm/requestcourse') ||
            (($r->is_initial_req()) && ($r->uri =~ m{^/tiny/[\w\-.]+/\w+$})))) {
           $env{'form.firsturl'} = $r->uri;
       }
     return $fail;      return $fail;
 }  }
   

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


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