Diff for /loncom/auth/lonacc.pm between versions 1.110.2.1 and 1.114

version 1.110.2.1, 2007/11/06 18:07:35 version 1.114, 2008/03/08 02:45:14
Line 37  use Apache::loncommon(); Line 37  use Apache::loncommon();
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::restrictedaccess();  use Apache::restrictedaccess();
 use Apache::blockedaccess();   use Apache::blockedaccess(); 
 use CGI::Cookie();  
 use Fcntl qw(:flock);  use Fcntl qw(:flock);
 use LONCAPA;  use LONCAPA;
   
Line 58  sub goodbye { Line 57  sub goodbye {
 ###############################################  ###############################################
   
 sub get_posted_cgi {  sub get_posted_cgi {
     my ($r) = @_;      my ($r,$fields) = @_;
   
     my $buffer;      my $buffer;
     if ($r->header_in('Content-length')) {      if ($r->header_in('Content-length')) {
Line 74  sub get_posted_cgi { Line 73  sub get_posted_cgi {
     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
     $name  =~ tr/+/ /;      $name  =~ tr/+/ /;
     $name  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;      $name  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
               if (ref($fields) eq 'ARRAY') {
                   next if (!grep(/^\Q$name\E$/,@{$fields}));
               }
     &Apache::loncommon::add_to_env("form.$name",$value);      &Apache::loncommon::add_to_env("form.$name",$value);
  }   }
     } else {      } else {
Line 94  sub get_posted_cgi { Line 96  sub get_posted_cgi {
     } else {      } else {
  $value=~s/\s+$//s;   $value=~s/\s+$//s;
     }      }
                       if (ref($fields) eq 'ARRAY') {
                           next if (!grep(/^\Q$name\E$/,@{$fields}));
                       }
     &Apache::loncommon::add_to_env("form.$name",$value);      &Apache::loncommon::add_to_env("form.$name",$value);
  }   }
  if ($i<$#lines) {   if ($i<$#lines) {
Line 146  sub get_posted_cgi { Line 151  sub get_posted_cgi {
 # returns OK if it was a SSO and user was handled  # returns OK if it was a SSO and user was handled
 #         undef if not SSO or no means to hanle the user  #         undef if not SSO or no means to hanle the user
 sub sso_login {  sub sso_login {
     my ($r,$lonid,$handle) = @_;      my ($r,$handle) = @_;
   
     my $lonidsdir=$r->dir_config('lonIDsDir');      my $lonidsdir=$r->dir_config('lonIDsDir');
     if (!($r->user       if (!($r->user 
   && (!defined($env{'user.name'}) && !defined($env{'user.domain'}))    && (!defined($env{'user.name'}) && !defined($env{'user.domain'}))
   && (!$lonid || !-e "$lonidsdir/$handle.id" || $handle eq ''))) {    && ($handle eq ''))) {
  # not an SSO case or already logged in   # not an SSO case or already logged in
  return undef;   return undef;
     }      }
Line 211  sub handler { Line 216  sub handler {
     if (&Apache::lonnet::is_domainimage($requrl)) {      if (&Apache::lonnet::is_domainimage($requrl)) {
         return OK;          return OK;
     }      }
     my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));  
     my $lonid=$cookies{'lonID'};  
     my $cookie;  
     my $lonidsdir=$r->dir_config('lonIDsDir');  
   
     my $handle;      
     if ($lonid) {      my $handle = &Apache::lonnet::check_for_valid_session($r);
  $handle=&LONCAPA::clean_handle($lonid->value);  
     }  
   
     my $result = &sso_login($r,$lonid,$handle);      my $result = &sso_login($r,$handle);
     if (defined($result)) {      if (defined($result)) {
  return $result   return $result
     }      }
Line 234  sub handler { Line 233  sub handler {
           
     if ($handle eq '') {      if ($handle eq '') {
  $r->log_reason("Cookie $handle not valid", $r->filename);    $r->log_reason("Cookie $handle not valid", $r->filename); 
     } elsif ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {      } elsif ($handle ne '') {
   
 # ------------------------------------------------------ Initialize Environment  # ------------------------------------------------------ Initialize Environment
    my $lonidsdir=$r->dir_config('lonIDsDir');
  &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);   &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
   
 # --------------------------------------------------------- Initialize Language  # --------------------------------------------------------- Initialize Language

Removed from v.1.110.2.1  
changed lines
  Added in v.1.114


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