Diff for /loncom/auth/lonlogin.pm between versions 1.134 and 1.144

version 1.134, 2010/03/03 17:05:49 version 1.144, 2010/08/26 14:16:23
Line 69  sub handler { Line 69  sub handler {
  return OK;   return OK;
     }      }
   
       $env{'form.firsturl'} =~ s/(`)/'/g;
   
 # -------------------------------- Prevent users from attempting to login twice  # -------------------------------- Prevent users from attempting to login twice
     my $handle = &Apache::lonnet::check_for_valid_session($r);      my $handle = &Apache::lonnet::check_for_valid_session($r);
     if ($handle=~/^publicuser\_/) {      if ($handle ne '') {
           my $lonidsdir=$r->dir_config('lonIDsDir');
           if ($handle=~/^publicuser\_/) {
 # For "public user" - remove it, we apparently really want to login  # For "public user" - remove it, we apparently really want to login
  unlink($r->dir_config('lonIDsDir')."/$handle.id");      unlink($r->dir_config('lonIDsDir')."/$handle.id");
     } elsif ($handle ne '') {          } else {
 # Indeed, a valid token is found  # Indeed, a valid token is found
  my $start_page =               &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
     &Apache::loncommon::start_page('Already logged in');      my $start_page = 
  my $end_page =           &Apache::loncommon::start_page('Already logged in');
     &Apache::loncommon::end_page();      my $end_page = 
         my $dest = '/adm/roles';          &Apache::loncommon::end_page();
         if ($env{'form.firsturl'} ne '') {              my $dest = '/adm/roles';
             $dest = $env{'form.firsturl'};               if ($env{'form.firsturl'} ne '') {
         }                  $dest = $env{'form.firsturl'}; 
                       }
     my $dom = &Apache::lonnet::default_login_domain();      $r->print(
     my %helpconfig = &Apache::lonnet::get_dom('configuration',['helpsettings'],$dom);  
       
     my $loginhelp_page = $helpconfig{'helpsettings'}{'loginhelpurl'};  
     if ($loginhelp_page eq '') {  
  $loginhelp_page = '/adm/loginproblems.html';  
     }  
  $r->print(  
                   $start_page                    $start_page
                  .'<h1>'.&mt('You are already logged in!').'</h1>'                   .'<h1>'.&mt('You are already logged in!').'</h1>'
                  .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].',                   .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].',
                   '<a href="'.$dest.'">','</a>','<a href="/adm/logout">','</a>').'</p>'                    '<a href="'.$dest.'">','</a>','<a href="/adm/logout">','</a>').'</p>'
                  .'<p><a href="'.$loginhelp_page.'">'.&mt('Login problems?').'</a></p>'                   .$end_page
                  .$dom.' '.$end_page  
                  );                   );
         return OK;              return OK;
           }
     }      }
   
 # ---------------------------------------------------- No valid token, continue  # ---------------------------------------------------- No valid token, continue
Line 157  sub handler { Line 153  sub handler {
     my $loadpercent=sprintf("%.1f",100*$loadavg/$loadlim);      my $loadpercent=sprintf("%.1f",100*$loadavg/$loadlim);
     my $userloadpercent=&Apache::lonnet::userload();      my $userloadpercent=&Apache::lonnet::userload();
   
 # ------------------------------------------------------- Do the load balancing  
     my $otherserver= &Apache::lonnet::absolute_url($host_name);  
     my $firsturl=      my $firsturl=
     ($env{'request.firsturl'}?$env{'request.firsturl'}:$env{'form.firsturl'});      ($env{'request.firsturl'}?$env{'request.firsturl'}:$env{'form.firsturl'});
 # ---------------------------------------------------------- Are we overloaded?  
     if ((($userloadpercent>100.0)||($loadpercent>100.0))) {  
         my $unloaded=Apache::lonnet::spareserver($loadpercent,$userloadpercent);  
  if ($unloaded) { $otherserver=$unloaded; }  
     }  
   
 # ----------------------------------------------------------- Get announcements  # ----------------------------------------------------------- Get announcements
     my $announcements=&Apache::lonnet::getannounce();      my $announcements=&Apache::lonnet::getannounce();
Line 269  my $link=&Apache::loncommon::designparm( Line 258  my $link=&Apache::loncommon::designparm(
 my $vlink=&Apache::loncommon::designparm('login.vlink',$domain);  my $vlink=&Apache::loncommon::designparm('login.vlink',$domain);
 my $alink=&Apache::loncommon::designparm('login.alink',$domain);  my $alink=&Apache::loncommon::designparm('login.alink',$domain);
 my $mainbg=&Apache::loncommon::designparm('login.mainbg',$domain);  my $mainbg=&Apache::loncommon::designparm('login.mainbg',$domain);
   my $loginbox_bg=&Apache::loncommon::designparm('login.sidebg',$domain);
   my $loginbox_header_bgcol=&Apache::loncommon::designparm('login.bgcol',$domain);
   my $loginbox_header_textcol=&Apache::loncommon::designparm('login.textcol',$domain);
 my $logo=&Apache::loncommon::designparm('login.logo',$domain);  my $logo=&Apache::loncommon::designparm('login.logo',$domain);
 my $img=&Apache::loncommon::designparm('login.img',$domain);  my $img=&Apache::loncommon::designparm('login.img',$domain);
 my $domainlogo='<div>'.&Apache::loncommon::domainlogo($domain).'</div>';  my $domainlogo=&Apache::loncommon::domainlogo($domain);
 my $login=&Apache::loncommon::designparm('login.login',$domain);  
 if ($login eq '') {  
 $login = $iconpath.'/'.&mt('userauthentication.gif');  
 }  
 my $showbanner = 1;  my $showbanner = 1;
 my $showmainlogo = 1;  my $showmainlogo = 1;
 if (defined(&Apache::loncommon::designparm('login.showlogo_img',$domain))) {  if (defined(&Apache::loncommon::designparm('login.showlogo_img',$domain))) {
Line 287  if (defined(&Apache::loncommon::designpa Line 275  if (defined(&Apache::loncommon::designpa
 my $showadminmail=&Apache::loncommon::designparm('login.adminmail',$domain);  my $showadminmail=&Apache::loncommon::designparm('login.adminmail',$domain);
 my $showcoursecat =  my $showcoursecat =
 &Apache::loncommon::designparm('login.coursecatalog',$domain);  &Apache::loncommon::designparm('login.coursecatalog',$domain);
 my $loginheader =&Apache::loncommon::designparm('login.loginheader',$domain);  
 my $shownewuserlink =   my $shownewuserlink = 
 &Apache::loncommon::designparm('login.newuser',$domain);  &Apache::loncommon::designparm('login.newuser',$domain);
 my $now=time;  my $now=time;
Line 320  this.document.client.elements.upass$now. Line 307  this.document.client.elements.upass$now.
 this.document.server.submit();  this.document.server.submit();
 return false;  return false;
 }  }
   
   function enableInput() {
       this.document.client.elements.upass$now.removeAttribute("readOnly");
       this.document.client.elements.uname.removeAttribute("readOnly");
       this.document.client.elements.udom.removeAttribute("readOnly");
       return;
   }
   
 // ]]>  // ]]>
 </script>  </script>
   
Line 332  my %add_entries = ( Line 327  my %add_entries = (
        text         => "$font",         text         => "$font",
        link         => "$link",         link         => "$link",
        vlink        => "$vlink",         vlink        => "$vlink",
        alink        => "$alink",);         alink        => "$alink",
                  onload       => 'javascript:enableInput();',);
   
 $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'], 
Line 361  my %lt=&Apache::lonlocal::texthash( Line 357  my %lt=&Apache::lonlocal::texthash(
   
 my $forgotpw = &forgotpwdisplay(%lt);  my $forgotpw = &forgotpwdisplay(%lt);
 $forgotpw .= '<br />' if $forgotpw;  $forgotpw .= '<br />' if $forgotpw;
 my $loginhelp = &loginhelpdisplay(%lt);  my $loginhelp = &loginhelpdisplay($authdomain,%lt);
 $loginhelp .= '<br />' if $loginhelp;  $loginhelp .= '<br />' if $loginhelp;
   
 # ---------------------------------------------------- Serve out DES JavaScript  # ---------------------------------------------------- Serve out DES JavaScript
Line 372  $r->print(<$jsh>); Line 368  $r->print(<$jsh>);
 # ---------------------------------------------------------- Serve rest of page  # ---------------------------------------------------------- Serve rest of page
   
 $r->print(  $r->print(
   '<div class="LC_loginpage_container">');      '<div class="LC_Box"'
      .' style="margin:0 auto; padding:10px; width:90%; height: auto; background-color:#FFFFFF;">'
   );
   
 #  #
 #  If the loadbalancing yielded just http:// because perhaps there's no loadbalancing?  #  If the loadbalancing yielded just http:// because perhaps there's no loadbalancing?
Line 380  $r->print( Line 378  $r->print(
 #  #
   
 $r->print(<<ENDSERVERFORM);  $r->print(<<ENDSERVERFORM);
 <form name="server" action="$otherserver/adm/authenticate" method="post" target="_top">  <form name="server" action="/adm/authenticate" method="post" target="_top">
    <input type="hidden" name="logtoken" value="$logtoken" />     <input type="hidden" name="logtoken" value="$logtoken" />
    <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="" />
Line 400  my $newuserlink; Line 398  my $newuserlink;
 if ($shownewuserlink) {  if ($shownewuserlink) {
     $newuserlink = &newuser_link($lt{'newuser'}).'<br />';      $newuserlink = &newuser_link($lt{'newuser'}).'<br />';
 }  }
 my $logintitle;  my $logintitle =
 if ($loginheader eq 'text') {      '<h2 class="LC_hcell"'
     $logintitle ='<h2>'.$lt{'log'}.'</h2>';     .' style="background:'.$loginbox_header_bgcol.';'
 } else {     .' color:'.$loginbox_header_textcol.'">'
     $logintitle = '<img src="'.$login.'" alt="'.     .$lt{'log'}
                   &mt('User Authentication').'" />';     .'</h2>';
 }  
   
 my $noscript_warning='<noscript><span class="LC_warning"><b>'  my $noscript_warning='<noscript><span class="LC_warning"><b>'
                      .&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.')                       .&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.')
Line 420  my $loginform=(<<LFORM); Line 417  my $loginform=(<<LFORM);
   <input type="hidden" name="lextkey" value="$lextkey" />    <input type="hidden" name="lextkey" value="$lextkey" />
   <input type="hidden" name="uextkey" value="$uextkey" />    <input type="hidden" name="uextkey" value="$uextkey" />
   <b><label for="uname">$lt{'un'}</label>:</b><br />    <b><label for="uname">$lt{'un'}</label>:</b><br />
   <input type="text" name="uname" id="uname" size="15" value="$authusername" /><br />    <input type="text" name="uname" id="uname" size="15" value="$authusername" readonly="readonly" /><br />
   <b><label for="upass$now">$lt{'pw'}</label>:</b><br />    <b><label for="upass$now">$lt{'pw'}</label>:</b><br />
   <input type="password" name="upass$now" id="upass$now" size="15" /><br />    <input type="password" name="upass$now" id="upass$now" size="15" readonly="readonly" /><br />
   <b><label for="udom">$lt{'dom'}</label>:</b><br />    <b><label for="udom">$lt{'dom'}</label>:</b><br />
   <input type="text" name="udom" id="udom" size="15" value="$authdomain" /><br />    <input type="text" name="udom" id="udom" size="15" value="$authdomain" readonly="readonly" /><br />
   <input type="submit" value="$lt{'log'}" />    <input type="submit" value="$lt{'log'}" />
 </form>  </form>
 LFORM  LFORM
Line 438  LFORM Line 435  LFORM
 HEADER  HEADER
     }      }
     $r->print(<<ENDTOP);      $r->print(<<ENDTOP);
 <div class="LC_loginpage_space">&nbsp;</div>  <div style="float:left;">
 <div class="LC_loginpage_floatLeft">  <div class="LC_Box" style="background:$loginbox_bg;">
 <div class="LC_loginpage_loginContainer">  
   $logintitle    $logintitle
    <table border="0" align="left" cellspacing="1" cellpadding="2" width="100%">    $loginform
       <tr>    $noscript_warning
    <td>  
  $loginform  
            </td>  
       </tr>  
    </table>    
    $noscript_warning  
 </div>  </div>
       
 <div class="LC_loginpage_loginInfo">  <div class="LC_Box" style="padding-top: 10px;">
   $loginhelp    $loginhelp
   $forgotpw    $forgotpw
   $contactblock    $contactblock
Line 460  HEADER Line 450  HEADER
   $coursecatalog    $coursecatalog
 </div>  </div>
 </div>  </div>
   
   <div>
 ENDTOP  ENDTOP
     if ($showmainlogo) {      if ($showmainlogo) {
         $r->print(' <img src="'.$logo.'" alt="" />'."\n");          $r->print(' <img src="'.$logo.'" alt="" />'."\n");
     }      }
 $r->print(<<ENDTOP);  $r->print(<<ENDTOP);
 $announcements  $announcements
 $domainlogo  </div>
 <div class="LC_loginpage_space">&nbsp;</div>  <hr style="clear:both;" />
 ENDTOP  ENDTOP
   
 $r->print(<<ENDDOCUMENT);  $r->print(<<ENDDOCUMENT);
       <div style="float: left;">
      <table border="0" cellspacing="0" cellpadding="0">       <table border="0" cellspacing="0" cellpadding="0">
       <tr>        <tr>
        <td  align="left" valign="top">         <td  align="left" valign="top">
Line 510  $r->print(<<ENDDOCUMENT); Line 503  $r->print(<<ENDDOCUMENT);
        </td>         </td>
       </tr>        </tr>
      </table>       </table>
       </div>
       <div style="float: right;">
       $domainlogo
       </div>
       <br style="clear:both;" />
  </div>   </div>
   
 <script type="text/javascript">  <script type="text/javascript">
Line 576  sub redirect_page { Line 574  sub redirect_page {
     if ($env{'form.firsturl'} ne '') {      if ($env{'form.firsturl'} ne '') {
         $url .='?firsturl='.$env{'form.firsturl'};          $url .='?firsturl='.$env{'form.firsturl'};
     }      }
     my $start_page = &Apache::loncommon::start_page('Switching Server',undef,      my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,
                                                     {'redirect' => [0,$url],});                                                      {'redirect' => [0,$url],});
     my $end_page   = &Apache::loncommon::end_page();      my $end_page   = &Apache::loncommon::end_page();
     return $start_page.$end_page;      return $start_page.$end_page;
Line 626  sub forgotpwdisplay { Line 624  sub forgotpwdisplay {
 }  }
   
 sub loginhelpdisplay {  sub loginhelpdisplay {
     my (%lt) = @_;      my ($authdomain,%lt) = @_;
     my $login_help = 1;      my $login_help = 1;
     if ($login_help) {      if ($login_help) {
     my $dom = &Apache::lonnet::default_login_domain();          my $dom = $authdomain;
  my %helpconfig = &Apache::lonnet::get_dom('configuration',['helpsettings'],$dom);          if ($dom eq '') {
  my $loginhelp_url = $helpconfig{'helpsettings'}{'loginhelpurl'};              $dom = &Apache::lonnet::default_login_domain();
  if ($loginhelp_url ne '') {          }
         return '<a href="'.$loginhelp_url.'">'.$lt{'help'}.'</a>';          my %helpconfig = &Apache::lonnet::get_dom('configuration',['helpsettings'],$dom);
           my $loginhelp_url = $helpconfig{'helpsettings'}{'loginhelpurl'};
           if ($loginhelp_url ne '') {
               return '<a href="'.$loginhelp_url.'">'.$lt{'help'}.'</a>';
         } else {          } else {
         return '<a href="/adm/loginproblems.html">'.$lt{'help'}.'</a>';              return '<a href="/adm/loginproblems.html">'.$lt{'help'}.'</a>';
         }          }
     }      }
     return;      return;
 }  }
Line 644  sub loginhelpdisplay { Line 645  sub loginhelpdisplay {
 sub coursecatalog_link {  sub coursecatalog_link {
     my ($linkname) = @_;      my ($linkname) = @_;
     return <<"END";      return <<"END";
       <span class="LC_nobreak"><a href="/adm/coursecatalog">$linkname</a></span>        <a href="/adm/coursecatalog">$linkname</a>
 END  END
 }  }
   

Removed from v.1.134  
changed lines
  Added in v.1.144


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