Diff for /loncom/auth/lonauth.pm between versions 1.68 and 1.71

version 1.68, 2005/07/05 21:30:14 version 1.71, 2005/11/10 19:19:08
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(mktime);
   
 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 132  sub success { Line 153  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='UTC';
           my $timediff=POSIX::mktime(localtime())-POSIX::mktime(gmtime());
           if ($timediff) {
       my $hours=int($timediff/3600);
               my $minutes=abs(int(($timediff-$hours*3600)/60));
               my $sign="+";
               if ($timediff<0) {
    $sign="-";
       }
               $timezone.=$sign.abs($hours).':'.substr("0$minutes",-2);
    }
           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 ($username eq 'public' && $domain eq 'public') {    if ($public) {
     print $idf "environment.remote=off\n";      print $idf "environment.remote=off\n";
  }   }
  if ($FORM{'interface'}) {   if ($FORM{'interface'}) {
Line 175  sub success { Line 209  sub success {
   
 # ------------------------------------------------------------ Get cookie ready  # ------------------------------------------------------------ Get cookie ready
   
     if ($username eq 'public' && $domain eq 'public') {      if ($public or $lowerurl eq 'noredirect') { return $cookie; }
  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.68  
changed lines
  Added in v.1.71


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