Diff for /loncom/auth/lonauth.pm between versions 1.67 and 1.73

version 1.67, 2005/06/07 02:14:28 version 1.73, 2006/01/19 22:14:38
Line 40  use Apache::lonnet; Line 40  use Apache::lonnet;
 use Apache::lonmenu();  use Apache::lonmenu();
 use Fcntl qw(:flock);  use Fcntl qw(:flock);
 use Apache::lonlocal;  use Apache::lonlocal;
   use POSIX qw(strftime);
   
 my %FORM;  my %FORM;
   
Line 49  sub success { Line 50  sub success {
     my ($r, $username, $domain, $authhost,$lowerurl) = @_;      my ($r, $username, $domain, $authhost,$lowerurl) = @_;
     my $lonids=$r->dir_config('lonIDsDir');      my $lonids=$r->dir_config('lonIDsDir');
   
       my $public=($username eq 'public' && $domain eq 'public');
   
 # See if old ID present, if so, remove  # See if old ID present, if so, remove
   
     my $filename;      my ($filename,$cookie,$userroles);
     opendir(DIR,$lonids);      my $now=time;
     while ($filename=readdir(DIR)) {  
        if ($filename=~/^$username\_\d+\_$domain\_$authhost\.id$/) {  
   unlink($lonids.'/'.$filename);  
        }  
     }  
     closedir(DIR);  
   
 # Give them a new cookie      if ($public) {
    my $max_public=100;
    my $oldest;
    my $oldest_time=0;
    for(my $next=1;$next<=$max_public;$next++) {
       if (-e $lonids."/publicuser_$next.id") {
    my $mtime=(stat($lonids."/publicuser_$next.id"))[9];
    if ($mtime<$oldest_time || !$oldest_time) {
       $oldest_time=$mtime;
       $oldest=$next;
    }
       } else {
    $cookie="publicuser_$next";
    last;
       }
    }
    if (!$cookie) { $cookie="publicuser_$oldest"; }
       } else {
    opendir(DIR,$lonids);
    while ($filename=readdir(DIR)) {
       if ($filename=~/^$username\_\d+\_$domain\_$authhost\.id$/) {
    unlink($lonids.'/'.$filename);
       }
    }
    closedir(DIR);
   
     my $cookie;  # Give them a new cookie
     my $now=time;  
     $cookie="$username\_$now\_$domain\_$authhost";  
   
    $cookie="$username\_$now\_$domain\_$authhost";
       
 # Initialize roles  # Initialize roles
   
     my $userroles=Apache::lonnet::rolesinit($domain,$username,$authhost);   $userroles=Apache::lonnet::rolesinit($domain,$username,$authhost);
       }
 # ------------------------------------ Check browser type and MathML capability  # ------------------------------------ Check browser type and MathML capability
   
     my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml,      my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml,
Line 93  sub success { Line 114  sub success {
     my %userenv=Apache::lonnet::dump('environment',$domain,$username);      my %userenv=Apache::lonnet::dump('environment',$domain,$username);
     my ($tmp) = keys(%userenv);      my ($tmp) = keys(%userenv);
     if ($tmp !~ /^(con_lost|error|no_such_host)/i) {      if ($tmp !~ /^(con_lost|error|no_such_host)/i) {
    # default remote control to off
    if ($userenv{'remote'} ne 'on') { $userenv{'remote'} = 'off'; }
  foreach my $key (keys(%userenv)) {   foreach my $key (keys(%userenv)) {
     $userenv.="environment.$key=$userenv{$key}\n";      $userenv.="environment.$key=$userenv{$key}\n";
  }   }
Line 132  sub success { Line 155  sub success {
            print $idf "browser.localpath=$FORM{'localpath'}\n";             print $idf "browser.localpath=$FORM{'localpath'}\n";
            print $idf "browser.localres=$FORM{'localres'}\n";             print $idf "browser.localres=$FORM{'localres'}\n";
         }          }
           print $idf "server.domain=".$r->dir_config('lonDefDomain')."\n";
           my $timezone=POSIX::strftime("%Z",localtime(time));
           print $idf "server.timezone=$timezone\n";
  print $idf "request.course.fn=\n";   print $idf "request.course.fn=\n";
  print $idf "request.course.uri=\n";   print $idf "request.course.uri=\n";
  print $idf "request.course.sec=\n";   print $idf "request.course.sec=\n";
  print $idf "request.role=cm\n";   print $idf "request.role=cm\n";
         print $idf "request.role.adv=$env{'user.adv'}\n";          print $idf "request.role.adv=$env{'user.adv'}\n";
  print $idf "request.host=$ENV{'REMOTE_ADDR'}\n";   print $idf "request.host=$ENV{'REMOTE_ADDR'}\n";
    if ($public) {
       print $idf "environment.remote=off\n";
    }
  if ($FORM{'interface'}) {   if ($FORM{'interface'}) {
     $FORM{'interface'}=~s/\W//gs;      $FORM{'interface'}=~s/\W//gs;
     print $idf "browser.interface=$FORM{'interface'}\n";      print $idf "browser.interface=$FORM{'interface'}\n";
Line 172  sub success { Line 201  sub success {
   
 # ------------------------------------------------------------ Get cookie ready  # ------------------------------------------------------------ Get cookie ready
   
       if ($public or $lowerurl eq 'noredirect') { return $cookie; }
   
     $cookie="lonID=$cookie; path=/";      $cookie="lonID=$cookie; path=/";
 # -------------------------------------------------------- Menu script and info  # -------------------------------------------------------- Menu script and info
     my $windowinfo=&Apache::lonmenu::open($clientos);      my $windowinfo=&Apache::lonmenu::open($clientos);

Removed from v.1.67  
changed lines
  Added in v.1.73


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