Diff for /loncom/auth/lonauth.pm between versions 1.69 and 1.77

version 1.69, 2005/07/07 06:18:37 version 1.77, 2006/05/31 15:33:39
Line 113  sub success { Line 113  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 152  sub success { Line 154  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";
  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";
Line 195  sub success { Line 198  sub success {
   
 # ------------------------------------------------------------ Get cookie ready  # ------------------------------------------------------------ Get cookie ready
   
     if ($public) { return $cookie; }      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);
Line 203  sub success { Line 207  sub success {
     my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl);      my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl);
     my $setflags=&Apache::lonmenu::setflags();      my $setflags=&Apache::lonmenu::setflags();
     my $maincall=&Apache::lonmenu::maincall();      my $maincall=&Apache::lonmenu::maincall();
     my $bodytag=&Apache::loncommon::bodytag('Successful Login');      my $start_page=&Apache::loncommon::start_page('Successful Login',
     my $add=&addcontent();    $startupremote,
     {'no_inline_link' => 1,});
       my $end_page  =&Apache::loncommon::end_page();
   
     my $continuelink;      my $continuelink;
     if (($env{'browser.interface'} eq 'textual') ||      if (($env{'browser.interface'} eq 'textual') ||
         ($env{'environment.remote'} eq 'off')) {          ($env{'environment.remote'} eq 'off')) {
Line 212  sub success { Line 219  sub success {
     }      }
 # ------------------------------------------------- Output for successful login  # ------------------------------------------------- Output for successful login
   
     $r->send_cgi_header(<<ENDHEADER);      &Apache::loncommon::content_type($r,'text/html');
 Content-type: text/html$add      $r->header_out('Set-cookie' => $cookie);
 Set-cookie: $cookie      $r->send_http_header;
   
 ENDHEADER  
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
        'wel' => 'Welcome',         'wel' => 'Welcome',
        'mes' => 'Welcome to the Learning<i>Online</i> Network with CAPA. Please wait while your session is being set up',         'mes' => 'Welcome to the Learning<i>Online</i> Network with CAPA. Please wait while your session is being set up',
Line 224  ENDHEADER Line 230  ENDHEADER
        'log' => 'loginproblems.html',         'log' => 'loginproblems.html',
        );         );
     $r->print(<<ENDSUCCESS);      $r->print(<<ENDSUCCESS);
 <html>  $start_page
 <head>  
 <title>Successful Login to the LearningOnline Network with CAPA</title>  
 $startupremote  
 </head>  
 $bodytag  
 $setflags  $setflags
 $windowinfo  $windowinfo
 <h1>$lt{'wel'}</h1>  <h1>$lt{'wel'}</h1>
Line 238  $lt{'mes'}.<p> Line 239  $lt{'mes'}.<p>
 $remoteinfo  $remoteinfo
 $maincall  $maincall
 $continuelink  $continuelink
 </body>  $end_page
 </html>  
 ENDSUCCESS  ENDSUCCESS
 }  }
   
Line 247  ENDSUCCESS Line 247  ENDSUCCESS
   
 sub failed {  sub failed {
     my ($r,$message) = @_;      my ($r,$message) = @_;
     my $bodytag=&Apache::loncommon::bodytag('Unsuccessful Login');      my $start_page = &Apache::loncommon::start_page('Unsuccessful Login',undef,
     my $add=&addcontent();      {'no_inline_link' => 1,});
     $r->send_cgi_header(<<ENDFHEADER);      my $end_page   = &Apache::loncommon::end_page();
 Content-type: text/html$add  
       my %lt=('sorry'  => &mt('Sorry ...'),
       'please' => 
       &mt('Please [_1]log in again[_2].',
    "<a href=\"/adm/login?username=$FORM{'uname'}&domain=$FORM{'udom'}\">",
    '</a>'),
       'problemspage' => &mt('loginproblems.html'),
       'problems'     => 'Problems',
       );
       &Apache::loncommon::content_type($r,'text/html');
       $r->send_http_header;
   
 ENDFHEADER  
     $r->print(<<ENDFAILED);      $r->print(<<ENDFAILED);
 <html>  $start_page
 <head>  <h1>$lt{'sorry'}</h1>
 <title>Unsuccessful Login to the LearningOnline Network with CAPA</title>  
 </head>  
 $bodytag  
 <h1>Sorry ...</h1>  
 <p><b>$message</b></p>  <p><b>$message</b></p>
 <p>Please <a href="/adm/login?username=$FORM{'uname'}&domain=$FORM{'udom'}">log in again</a>.</p>  <p>$lt{'please'}</p>
 <p>  <p>
 <a href="/adm/loginproblems.html">Problems?</a></p>  <a href="/adm/$lt{'problemspage'}">$lt{'problems'}</a></p>
 </body>  $end_page
 </html>  
 ENDFAILED  ENDFAILED
 }  }
   
 # --------------------------------------------------------------------- Charset  
   
 sub addcontent {  
     my $encoding=&Apache::lonlocal::current_encoding;  
     if ($encoding) {  
  return '; charset='.$encoding;  
     } else {  
  return '';  
     }  
 }  
   
 # ------------------------------------------------------------------ Rerouting!  # ------------------------------------------------------------------ Rerouting!
   
 sub reroute {  sub reroute {
     my $r=shift;      my ($r) = @_;
     my $bodytag=&Apache::loncommon::bodytag('Rerouting');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_cgi_header(<<ENDRFHEADER);      $r->send_http_header;
 Content-type: text/html      my $msg='<h1>Sorry ...</h1>
                Please <a href="/">log in again</a>.';
 ENDRFHEADER      &Apache::loncommon::simple_error_page($r,'Rerouting',$msg);
     $r->print(<<ENDRFAILED);  
 <html>  
 <head>  
 <title>Rerouting Login to the LearningOnline Network with CAPA</title>  
 </head>  
 $bodytag  
 <h1>Sorry ...</h1>  
 Please <a href="/">log in again</a>.  
 </body>  
 </html>  
 ENDRFAILED  
 }  }
   
 # ---------------------------------------------------------------- Main handler  # ---------------------------------------------------------------- Main handler
Line 325  sub handler { Line 307  sub handler {
         my $lonidsdir=$r->dir_config('lonIDsDir');          my $lonidsdir=$r->dir_config('lonIDsDir');
         if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {          if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {
 # Indeed, a valid token is found  # Indeed, a valid token is found
     $r->send_cgi_header(<<ENDFHEADER);      &Apache::loncommon::content_type($r,'text/html');
 Content-type: text/html      $r->send_http_header;
       my $start_page = 
 ENDFHEADER   &Apache::loncommon::start_page('Already logged in');
     my $bodytag=&Apache::loncommon::bodytag('Already logged in');      my $end_page = 
    &Apache::loncommon::end_page();
     $r->print(<<ENDFAILED);      $r->print(<<ENDFAILED);
 <html>  $start_page
 <head>  
 <title>Already logged in</title>  
 </head>  
 $bodytag  
 <h1>You are already logged in</h1>  <h1>You are already logged in</h1>
 <p>Please either <a href="/adm/roles">continue the current session</a> or  <p>Please either <a href="/adm/roles">continue the current session</a> or
 <a href="/adm/logout">logout</a>.</p>  <a href="/adm/logout">logout</a>.</p>
 <p>  <p>
 <a href="/adm/loginproblems.html">Problems?</a></p>  <a href="/adm/loginproblems.html">Problems?</a></p>
 </body>  $end_page
 </html>  
 ENDFAILED  ENDFAILED
            return OK;             return OK;
  }   }
Line 389  ENDFAILED Line 367  ENDFAILED
  failed($r,'Information needed to verify your login information is missing, inaccessible or expired.');   failed($r,'Information needed to verify your login information is missing, inaccessible or expired.');
         return OK;          return OK;
     } else {      } else {
         unless (&Apache::lonnet::reply('tmpdel:'.$FORM{'logtoken'},   my $reply = &Apache::lonnet::reply('tmpdel:'.$FORM{'logtoken'},
                                          $FORM{'serverid'}) eq 'ok') {     $FORM{'serverid'});
           if ( $reply ne 'ok' ) {
             &failed($r,'Session could not be opened.');              &failed($r,'Session could not be opened.');
       &Apache::lonnet::logthis("ERROR got a reply of $reply when trying to contact ". $FORM{'serverid'}." to get login token");
       return OK;
  }   }
     }      }
     my ($key,$firsturl)=split(/&/,$tmpinfo);      my ($key,$firsturl)=split(/&/,$tmpinfo);

Removed from v.1.69  
changed lines
  Added in v.1.77


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