Diff for /loncom/auth/lonlogin.pm between versions 1.106.2.1 and 1.106.4.8

version 1.106.2.1, 2008/12/10 17:45:29 version 1.106.4.8, 2010/03/31 23:18:27
Line 46  sub handler { Line 46  sub handler {
  (join('&',$ENV{'QUERY_STRING'},$env{'request.querystring'},   (join('&',$ENV{'QUERY_STRING'},$env{'request.querystring'},
       $ENV{'REDIRECT_QUERY_STRING'}),        $ENV{'REDIRECT_QUERY_STRING'}),
  ['interface','username','domain','firsturl','localpath','localres',   ['interface','username','domain','firsturl','localpath','localres',
   'token']);    'token','role','symb']);
     if (!defined($env{'form.firsturl'})) {      if (!defined($env{'form.firsturl'})) {
         &Apache::lonacc::get_posted_cgi($r,['firsturl']);          &Apache::lonacc::get_posted_cgi($r,['firsturl']);
     }      }
Line 81  sub handler { Line 81  sub handler {
     &Apache::loncommon::start_page('Already logged in');      &Apache::loncommon::start_page('Already logged in');
  my $end_page =    my $end_page = 
     &Apache::loncommon::end_page();      &Apache::loncommon::end_page();
           my $dest = '/adm/roles';
           if ($env{'form.firsturl'} ne '') {
               $dest = $env{'form.firsturl'};
           }
  $r->print(   $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]logout[_4].',                   .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].',
                   '<a href="/adm/roles">','</a>','<a href="/adm/logout">','</a>').'</p>'                    '<a href="'.$dest.'">','</a>','<a href="/adm/logout">','</a>').'</p>'
                  .'<p><a href="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'                   .'<p><a href="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'
                  .$end_page                   .$end_page
                  );                   );
Line 116  sub handler { Line 120  sub handler {
     my $iconpath=       my $iconpath= 
  &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL'));   &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL'));
   
       my $lonhost = $r->dir_config('lonHostID');
     my $domain = &Apache::lonnet::default_login_domain();      my $domain = &Apache::lonnet::default_login_domain();
       if ($lonhost ne '') {
           my $redirect = &check_loginvia($domain,$lonhost);
           if ($redirect) {
               $r->print($redirect);
               return OK;
           }
       }
   
     if (($env{'form.domain'}) &&       if (($env{'form.domain'}) && 
  (&Apache::lonnet::domain($env{'form.domain'},'description'))) {   (&Apache::lonnet::domain($env{'form.domain'},'description'))) {
  $domain=$env{'form.domain'};   $domain=$env{'form.domain'};
Line 124  sub handler { Line 137  sub handler {
     my $role    = $r->dir_config('lonRole');      my $role    = $r->dir_config('lonRole');
     my $loadlim = $r->dir_config('lonLoadLim');      my $loadlim = $r->dir_config('lonLoadLim');
     my $servadm = $r->dir_config('lonAdmEMail');      my $servadm = $r->dir_config('lonAdmEMail');
     my $lonhost = $r->dir_config('lonHostID');  
     my $tabdir  = $r->dir_config('lonTabDir');      my $tabdir  = $r->dir_config('lonTabDir');
     my $include = $r->dir_config('lonIncludes');      my $include = $r->dir_config('lonIncludes');
     my $expire  = $r->dir_config('lonExpire');      my $expire  = $r->dir_config('lonExpire');
Line 179  sub handler { Line 191  sub handler {
     if ($uextkey>2147483647) { $uextkey-=4294967296; }      if ($uextkey>2147483647) { $uextkey-=4294967296; }
   
 # -------------------------------------------------------- Store away log token  # -------------------------------------------------------- Store away log token
       my $tokenextras;
       if ($env{'form.role'}) {
           $tokenextras = '&role='.&escape($env{'form.role'});
       }
       if ($env{'form.symb'}) {
           if (!$tokenextras) {
               $tokenextras = '&';
           }
           $tokenextras .= '&symb='.&escape($env{'form.symb'});
       }
     my $logtoken=Apache::lonnet::reply(      my $logtoken=Apache::lonnet::reply(
        'tmpput:'.$ukey.$lkey.'&'.$firsturl,         'tmpput:'.$ukey.$lkey.'&'.$firsturl.$tokenextras,
        $lonhost);         $lonhost);
   
 # ------------------- If we cannot talk to ourselves, we are in serious trouble  # ------------------- If we cannot talk to ourselves, we are in serious trouble
Line 283  sub handler { Line 305  sub handler {
     my $now=time;      my $now=time;
     my $js = (<<ENDSCRIPT);      my $js = (<<ENDSCRIPT);
   
  <script language="JavaScript">   <script type="text/javascript">
    // <![CDATA[
     function send()      function send()
     {      {
         this.document.server.elements.uname.value          this.document.server.elements.uname.value
Line 327  sub handler { Line 350  sub handler {
         this.document.server.submit();          this.document.server.submit();
         return false;          return false;
     }      }
    // ]]>
  </script>   </script>
   
 ENDSCRIPT  ENDSCRIPT
Line 354  my %lt=&Apache::lonlocal::texthash( Line 378  my %lt=&Apache::lonlocal::texthash(
   'un'  => 'Username',    'un'  => 'Username',
   'pw'  => 'Password',    'pw'  => 'Password',
   'dom' => 'Domain',    'dom' => 'Domain',
   'perc' => 'percent',  
   'load' => 'Server Load',    'load' => 'Server Load',
                   'userload' => 'User Load',                    'userload' => 'User Load',
                   'about'  => 'About LON-CAPA',                    'about'  => 'About LON-CAPA',
                   'access' => 'Accessibility Options',                    'access' => 'Accessibility Options',
                   'catalog' => 'Course Catalog',                    'catalog' => 'Course/Community Catalog',
   'log' => 'Log in',    'log' => 'Log in',
   'help' => 'Log-in Help',    'help' => 'Log-in Help',
   'serv' => 'Server',    'serv' => 'Server',
Line 387  my %lt=&Apache::lonlocal::texthash( Line 410  my %lt=&Apache::lonlocal::texthash(
   
     if ($fullgraph) {      if ($fullgraph) {
  $r->print(   $r->print(
   '<table width="100%" cellpadding=0 cellspacing=0 border=0>');    '<table width="100%" cellpadding="0" cellspacing="0" border="0">');
     }      }
   
     $r->print(<<ENDSERVERFORM);      $r->print(<<ENDSERVERFORM);
Line 427  ENDSERVERFORM Line 450  ENDSERVERFORM
    <td width="100%" height=75 colspan=4 align="left" valign="top" bgcolor="$pgbg">     <td width="100%" height=75 colspan=4 align="left" valign="top" bgcolor="$pgbg">
 HEADER  HEADER
         if ($showbanner) {          if ($showbanner) {
             $r->print(<<ENDBANNER);               $r->print(<<ENDBANNER);
 <img src="$img" border=0 alt="The Learning Online Network with CAPA" />  <img src="$img" border="0" alt="The Learning Online Network with CAPA" />
 ENDBANNER  ENDBANNER
         }          }
         $r->print(<<ENDSTART);          $r->print(<<ENDSTART);
Line 501  ENDTOP Line 524  ENDTOP
                  .'<h2>'.&mt('Text-based Interface Login').'</h2>'                   .'<h2>'.&mt('Text-based Interface Login').'</h2>'
                  .$announcements);                   .$announcements);
     }      }
     $r->print('<form name="client" onsubmit="return(send())">');      $r->print('<form name="client" action="" onsubmit="return(send())">');
     unless ($fullgraph) {      unless ($fullgraph) {
         $r->print(<<ENDACCESSOPTIONS);          $r->print(<<ENDACCESSOPTIONS);
 <h3>$lt{'options_headline'}</h3>  <h3>$lt{'options_headline'}</h3>
Line 535  ENDNOOPT Line 558  ENDNOOPT
                         .&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.')
                         .'</font></div></noscript></td>';                          .'</font></div></noscript></td>';
     $r->print(<<ENDLOGIN);      $r->print(<<ENDLOGIN);
      <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" />
   
      <!-- Start the sub-table for text and input alignment -->       <!-- Start the sub-table for text and input alignment -->
      <table border=0 cellspacing=0 cellpadding=0>       <table border="0" cellspacing="0" cellpadding="0">
       <tr>$logintitle</tr>        <tr>$logintitle</tr>
       <tr>$noscript_warning</tr>        <tr>$noscript_warning</tr>
       <tr>        <tr>
Line 594  ENDLOGIN Line 617  ENDLOGIN
    <!-- Row 5 Column 1 -->     <!-- Row 5 Column 1 -->
    <td bgcolor="$sidebg" valign="middle" align="left">     <td bgcolor="$sidebg" valign="middle" align="left">
      <br />       <br />
      <table border=0 cellspacing=0 cellpadding=0>       <table border="0" cellspacing="0" cellpadding="0">
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'dom'}:&nbsp;</b></small>          <small><b>&nbsp;&nbsp;&nbsp;$lt{'dom'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="middle">
         <small><tt>&nbsp;$domain</tt></small>          <small><tt>&nbsp;$domain</tt></small>
        </td>         </td>
       </tr>        </tr>
Line 607  ENDLOGIN Line 630  ENDLOGIN
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'serv'}:&nbsp;</b></small>          <small><b>&nbsp;&nbsp;&nbsp;$lt{'serv'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="middle">
         <small><tt>&nbsp;$lonhost ($role)</tt></small>          <small><tt>&nbsp;$lonhost ($role)</tt></small>
        </td>         </td>
       </tr>        </tr>
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="top"><span class="LC_nobreak">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'load'}:&nbsp;</b></small>          <small><b>&nbsp;&nbsp;&nbsp;$lt{'load'}:&nbsp;</b></small></span>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="middle">
         <small><tt>&nbsp;$loadpercent $lt{'perc'}</tt></small>          <small><tt>&nbsp;$loadpercent%</tt></small>
        </td>         </td>
       </tr>        </tr>
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="top"><span class="LC_nobreak">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'userload'}:&nbsp;</b></small>          <small><b>&nbsp;&nbsp;&nbsp;$lt{'userload'}:&nbsp;</b></small></span>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td bgcolor="$sidebg" align="left" valign="middle">
         <small><tt>&nbsp;$userloadpercent $lt{'perc'}</tt></small>          <small><tt>&nbsp;$userloadpercent%</tt></small>
        </td>         </td>
       </tr>        </tr>
      </table>       </table>
Line 660  $domainlogo Line 683  $domainlogo
  </table>   </table>
   
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 // the if prevents the script error if the browser can not handle this  // the if prevents the script error if the browser can not handle this
 if ( document.client.uname ) { document.client.uname.focus(); }  if ( document.client.uname ) { document.client.uname.focus(); }
   // ]]>
 </script>  </script>
 $helpdeskscript  $helpdeskscript
   
Line 672  ENDDOCUMENT Line 697  ENDDOCUMENT
     return OK;      return OK;
 }  }
   
   sub check_loginvia {
       my ($domain,$lonhost) = @_;
       if ($domain eq '' || $lonhost eq '') {
           return;
       }
       my %domconfhash = &Apache::loncommon::get_domainconf($domain);
       my $loginvia = $domconfhash{$domain.'.login.loginvia_'.$lonhost};
       my $loginvia_exempt = $domconfhash{$domain.'.login.loginvia_exempt_'.$lonhost};
       my $output;
       if ($loginvia ne '') {
           my $noredirect;
           my $ip = $ENV{'REMOTE_ADDR'};
           if ($ip eq '127.0.0.1') {
               $noredirect = 1;
           } else {
               if ($loginvia_exempt ne '') {
                   my @exempt = split(',',$loginvia_exempt);
                   if (grep(/^\Q$ip\E$/,@exempt)) {
                       $noredirect = 1;
                   }
               }
           }
           unless ($noredirect) {
               my ($newhost,$path);
               if ($loginvia =~ /:/) {
                   ($newhost,$path) = split(':',$loginvia);
               } else {
                   $newhost = $loginvia;
               }
               if ($newhost ne $lonhost) {
                   if (&Apache::lonnet::hostname($newhost) ne '') {
                       $output = &redirect_page($newhost,$path);
                   }
               }
           }
       }
       return $output;
   }
   
   sub redirect_page {
       my ($desthost,$path) = @_;
       my $protocol = $Apache::lonnet::protocol{$desthost};
       $protocol = 'http' if ($protocol ne 'https');
       unless ($path =~ m{^/}) {
           $path = '/'.$path;
       }
       my $url = $protocol.'://'.&Apache::lonnet::hostname($desthost).$path;
       if ($env{'form.firsturl'} ne '') {
           $url .='?firsturl='.$env{'form.firsturl'};
       }
       my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,
                                                       {'redirect' => [0,$url],});
       my $end_page   = &Apache::loncommon::end_page();
       return $start_page.$end_page;
   }
   
 sub contactdisplay {  sub contactdisplay {
     my ($lt,$servadm,$showadminmail,$version,$authdomain,$helpdeskscript) = @_;      my ($lt,$servadm,$showadminmail,$version,$authdomain,$helpdeskscript) = @_;
     my $contactblock;      my $contactblock;
Line 689  sub contactdisplay { Line 770  sub contactdisplay {
         my $thisurl = &escape('/adm/login');          my $thisurl = &escape('/adm/login');
         $$helpdeskscript = <<"ENDSCRIPT";          $$helpdeskscript = <<"ENDSCRIPT";
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 function helpdesk() {  function helpdesk() {
     var codedom = document.client.udom.value;      var codedom = document.client.udom.value;
     if (codedom == '') {      if (codedom == '') {
Line 698  function helpdesk() { Line 780  function helpdesk() {
     document.location.href = "/adm/helpdesk?"+querystr;      document.location.href = "/adm/helpdesk?"+querystr;
     return;      return;
 }  }
   // ]]>
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
     }      }
Line 730  sub coursecatalog_link { Line 813  sub coursecatalog_link {
     return <<"END";      return <<"END";
      <tr>       <tr>
       <td>&nbsp;</td>        <td>&nbsp;</td>
       <td><a href="/adm/coursecatalog"><b>$linkname</b></a></td>        <td><span class="LC_nobreak"><a href="/adm/coursecatalog"><b>$linkname</b></a></span></td>
      </tr>       </tr>
 END  END
 }  }

Removed from v.1.106.2.1  
changed lines
  Added in v.1.106.4.8


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