Diff for /loncom/auth/lonlogin.pm between versions 1.158.2.6.2.1 and 1.159

version 1.158.2.6.2.1, 2017/10/14 20:59:35 version 1.159, 2014/10/04 02:59:32
Line 38  use Apache::lonlocal; Line 38  use Apache::lonlocal;
 use Apache::migrateuser();  use Apache::migrateuser();
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
 use CGI::Cookie();  
     
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 57  sub handler { Line 56  sub handler {
  return &Apache::migrateuser::handler($r);   return &Apache::migrateuser::handler($r);
     }      }
   
 # For "public user" - remove any exising "public" cookie, as user really wants to log-in  
     my ($handle,$lonidsdir,$expirepub,$userdom);  
     unless ($r->header_only) {  
         $handle = &Apache::lonnet::check_for_valid_session($r,'lonID',undef,\$userdom);  
         if ($handle ne '') {  
             $lonidsdir=$r->dir_config('lonIDsDir');  
             if ($handle=~/^publicuser\_/) {  
                 unlink($r->dir_config('lonIDsDir')."/$handle.id");  
                 undef($handle);  
                 undef($userdom);  
                 $expirepub = 1;  
             }  
         }  
     }  
   
     &Apache::loncommon::no_cache($r);      &Apache::loncommon::no_cache($r);
     &Apache::lonlocal::get_language_handle($r);      &Apache::lonlocal::get_language_handle($r);
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     if ($expirepub) {  
         my $c = new CGI::Cookie(-name    => 'lonID',  
                                 -value   => '',  
                                 -expires => '-10y',);  
         $r->header_out('Set-cookie' => $c);  
     } elsif (($handle eq '') && ($userdom ne '')) {  
         my $c = new CGI::Cookie(-name    => 'lonID',  
                                 -value   => '',  
                                 -expires => '-10y',);  
         $r->headers_out->add('Set-cookie' => $c);  
     }  
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
Line 97  sub handler { Line 70  sub handler {
  return OK;   return OK;
     }      }
   
 #  
 # If browser sent an old cookie for which the session file had been removed  
 # check if configuration for user's domain has a portal URL set.  If so  
 # switch user's log-in to the portal.  
 #  
   
     if (($handle eq '') && ($userdom ne '')) {  
         my %domdefaults = &Apache::lonnet::get_domain_defaults($userdom);  
         if ($domdefaults{'portal_def'} =~ /^https?\:/) {  
             my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,  
                                           {'redirect' => [0,$domdefaults{'portal_def'}],});  
             my $end_page   = &Apache::loncommon::end_page();  
             $r->print($start_page.$end_page);  
             return OK;  
         }  
     }  
   
     $env{'form.firsturl'} =~ s/(`)/'/g;      $env{'form.firsturl'} =~ s/(`)/'/g;
   
 # -------------------------------- Prevent users from attempting to login twice  # -------------------------------- Prevent users from attempting to login twice
Line 173  sub handler { Line 129  sub handler {
   
     my $lonhost = $r->dir_config('lonHostID');      my $lonhost = $r->dir_config('lonHostID');
     my $domain = &Apache::lonnet::default_login_domain();      my $domain = &Apache::lonnet::default_login_domain();
     my $defdom = $domain;  
     if ($lonhost ne '') {      if ($lonhost ne '') {
         unless ($sessiondata{'sessionserver'}) {          unless ($sessiondata{'sessionserver'}) {
             my $redirect = &check_loginvia($domain,$lonhost);              my $redirect = &check_loginvia($domain,$lonhost);
Line 397  lextkey=this.document.client.elements.le Line 352  lextkey=this.document.client.elements.le
 initkeys();  initkeys();
   
 this.document.server.elements.upass0.value  this.document.server.elements.upass0.value
     =getCrypted(this.document.client.elements.upass$now.value);      =crypted(this.document.client.elements.upass$now.value.substr(0,15));
   this.document.server.elements.upass1.value
       =crypted(this.document.client.elements.upass$now.value.substr(15,15));
   this.document.server.elements.upass2.value
       =crypted(this.document.client.elements.upass$now.value.substr(30,15));
   
 this.document.client.elements.uname.value='';  this.document.client.elements.uname.value='';
 this.document.client.elements.upass$now.value='';  this.document.client.elements.upass$now.value='';
Line 428  ENDSCRIPT Line 387  ENDSCRIPT
        alink        => "$alink",         alink        => "$alink",
                onload       => 'javascript:enableInput();',);                 onload       => 'javascript:enableInput();',);
   
     my ($lonhost_in_use,$headextra,$headextra_exempt,@hosts,%defaultdomconf);  
     @hosts = &Apache::lonnet::current_machine_ids();  
     $lonhost_in_use = $lonhost;  
     if (@hosts > 1) {  
         foreach my $hostid (@hosts) {  
             if (&Apache::lonnet::host_domain($hostid) eq $defdom) {  
                 $lonhost_in_use = $hostid;  
                 last;  
             }  
         }  
     }  
     %defaultdomconf = &Apache::loncommon::get_domainconf($defdom);  
     $headextra = $defaultdomconf{$defdom.'.login.headtag_'.$lonhost_in_use};  
     $headextra_exempt = $defaultdomconf{$domain.'.login.headtag_exempt_'.$lonhost_in_use};  
     if ($headextra) {  
         my $omitextra;  
         if ($headextra_exempt ne '') {  
             my @exempt = split(',',$headextra_exempt);  
             my $ip = $ENV{'REMOTE_ADDR'};  
             if (grep(/^\Q$ip\E$/,@exempt)) {  
                 $omitextra = 1;  
             }  
         }  
         unless ($omitextra) {  
             my $confname = $defdom.'-domainconfig';  
             if ($headextra =~ m{^\Q/res/$defdom/$confname/login/headtag/$lonhost_in_use/\E}) {  
                 my $extra = &Apache::lonnet::getfile(&Apache::lonnet::filelocation("",$headextra));  
                 unless ($extra eq '-1') {  
                     $js .= "\n".$extra."\n";  
                 }  
             }  
         }  
     }  
   
     $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js,      $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js,
        { 'redirect'       => [$expire,'/adm/roles'],          { 'redirect'       => [$expire,'/adm/roles'], 
  'add_entries' => \%add_entries,   'add_entries' => \%add_entries,
Line 512  ENDSCRIPT Line 437  ENDSCRIPT
    <input type="hidden" name="serverid" value="$lonhost" />     <input type="hidden" name="serverid" value="$lonhost" />
    <input type="hidden" name="uname" value="" />     <input type="hidden" name="uname" value="" />
    <input type="hidden" name="upass0" value="" />     <input type="hidden" name="upass0" value="" />
      <input type="hidden" name="upass1" value="" />
      <input type="hidden" name="upass2" value="" />
    <input type="hidden" name="udom" value="" />     <input type="hidden" name="udom" value="" />
    <input type="hidden" name="localpath" value="$env{'form.localpath'}" />     <input type="hidden" name="localpath" value="$env{'form.localpath'}" />
    <input type="hidden" name="localres" value="$env{'form.localres'}" />     <input type="hidden" name="localres" value="$env{'form.localres'}" />
Line 562  LFORM Line 489  LFORM
         $r->print(<<HEADER);          $r->print(<<HEADER);
 <!-- The LON-CAPA Header -->  <!-- The LON-CAPA Header -->
 <div style="background:$pgbg;margin:0;width:100%;">  <div style="background:$pgbg;margin:0;width:100%;">
   <img src="$img" border="0" alt="The Learning Online Network with CAPA" class="LC_maxwidth" />    <img src="$img" border="0" alt="The Learning Online Network with CAPA" />
 </div>  </div>
 HEADER  HEADER
     }      }
Line 586  HEADER Line 513  HEADER
 <div>  <div>
 ENDTOP  ENDTOP
     if ($showmainlogo) {      if ($showmainlogo) {
         $r->print(' <img src="'.$logo.'" alt="" class="LC_maxwidth" />'."\n");          $r->print(' <img src="'.$logo.'" alt="" />'."\n");
     }      }
 $r->print(<<ENDTOP);  $r->print(<<ENDTOP);
 $announcements  $announcements

Removed from v.1.158.2.6.2.1  
changed lines
  Added in v.1.159


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