Diff for /loncom/auth/lonauth.pm between versions 1.79 and 1.82

version 1.79, 2006/06/02 21:23:49 version 1.82, 2006/08/30 22:12:11
Line 46  my %FORM; Line 46  my %FORM;
 # ------------------------------------------------------------ Successful login  # ------------------------------------------------------------ Successful login
   
 sub success {  sub success {
     my ($r, $username, $domain, $authhost,$lowerurl) = @_;      my ($r, $username, $domain, $authhost, $lowerurl, $extra_env) = @_;
     my $lonids=$r->dir_config('lonIDsDir');      my $lonids=$r->dir_config('lonIDsDir');
   
     my $public=($username eq 'public' && $domain eq 'public');      my $public=($username eq 'public' && $domain eq 'public');
Line 170  sub success { Line 170  sub success {
     }      }
  }   }
   
    $env{'user.environment'} = "$lonids/$cookie.id";
  open(my $idf,">$lonids/$cookie.id");   open(my $idf,">$lonids/$cookie.id");
  unless (flock($idf,LOCK_EX)) {   unless (flock($idf,LOCK_EX)) {
     &Apache::lonnet::logthis("<font color=blue>WARNING: ".      &Apache::lonnet::logthis("<font color=blue>WARNING: ".
Line 178  sub success { Line 179  sub success {
     return 'error: '.$!;      return 'error: '.$!;
  }   }
   
  while (my ($key,$value) = each(%initial_env)) {   &add_to_env($idf,\%initial_env);
     print $idf (&escape($key).'='.&escape($value)."\n");   &add_to_env($idf,\%userenv,'environment.');
  }   &add_to_env($idf,$userroles);
  while (my ($key,$value) = each(%userenv)) {   &add_to_env($idf,$extra_env);
     print $idf (&escape('environment.'.$key).'='.&escape($value)."\n");  
  }  
  while (my ($key,$value) = each(%{$userroles})) {  
     print $idf (&escape($key).'='.&escape($value)."\n");  
  }  
  close($idf);   close($idf);
     }      }
     $env{'request.role'}='cm';      $env{'request.role'}='cm';
Line 253  $end_page Line 249  $end_page
 ENDSUCCESS  ENDSUCCESS
 }  }
   
   sub add_to_env {
       my ($idf,$env_data,$prefix) = @_;
       while (my ($key,$value) = each(%$env_data)) {
    print $idf (&escape($prefix.$key).'='.&escape($value)."\n");
    $env{$prefix.$key} = $value;
       }
   }
   
 # --------------------------------------------------------------- Failed login!  # --------------------------------------------------------------- Failed login!
   
 sub failed {  sub failed {
Line 446  ENDFAILED Line 450  ENDFAILED
     &Apache::lonnet::logthis('Non-privileged user attempting switch user');      &Apache::lonnet::logthis('Non-privileged user attempting switch user');
  }   }
     }      }
     &success($r,$FORM{'uname'},$FORM{'udom'},$authhost,$firsturl);      if ($r->dir_config("lonBalancer") eq 'yes') {
    &success($r,$FORM{'uname'},$FORM{'udom'},$authhost,'noredirect');
    $r->internal_redirect('/adm/switchserver');
       } else {
    &success($r,$FORM{'uname'},$FORM{'udom'},$authhost,$firsturl);
       }
     return OK;      return OK;
 }  }
   

Removed from v.1.79  
changed lines
  Added in v.1.82


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