Diff for /loncom/auth/lonlogin.pm between versions 1.106.4.6 and 1.132

version 1.106.4.6, 2010/03/05 17:37:21 version 1.132, 2010/02/08 13:28:40
Line 83  sub handler { Line 83  sub handler {
     &Apache::loncommon::end_page();      &Apache::loncommon::end_page();
         my $dest = '/adm/roles';          my $dest = '/adm/roles';
         if ($env{'form.firsturl'} ne '') {          if ($env{'form.firsturl'} ne '') {
             $dest = $env{'form.firsturl'};              $dest = $env{'form.firsturl'}; 
         }          }
           
       my $dom = &Apache::lonnet::default_login_domain();
       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(   $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="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'                   .'<p><a href="'.$loginhelp_page.'">'.&mt('Login problems?').'</a></p>'
                  .$end_page                   .$dom.' '.$end_page
                  );                   );
         return OK;          return OK;
     }      }
Line 106  sub handler { Line 114  sub handler {
 # ----------------------------------------------------------- Process Interface  # ----------------------------------------------------------- Process Interface
     $env{'form.interface'}=~s/\W//g;      $env{'form.interface'}=~s/\W//g;
   
     my $textbrowsers=$r->dir_config('lonTextBrowsers');  
     my $httpbrowser=$ENV{"HTTP_USER_AGENT"};      my $httpbrowser=$ENV{"HTTP_USER_AGENT"};
       
     foreach (split(/\:/,$textbrowsers)) {  
  if ($httpbrowser=~/$_/i) {  
     $env{'form.interface'}='textual';  
         }  
     }  
   
     my $fullgraph=($env{'form.interface'} ne 'textual');  
   
     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();
       my %domconfhash = &Apache::loncommon::get_domainconf($domain);
       if ($lonhost ne '') {
           my $loginvia = $domconfhash{$domain.'.login.loginvia_'.$lonhost};
           if (($loginvia ne '') && ($loginvia ne $lonhost)) {
               if (&Apache::lonnet::hostname($loginvia) ne '') {
                   $r->print(&redirect_page($loginvia));
                   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 128  sub handler { Line 139  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 218  sub handler { Line 228  sub handler {
                 ' '.&mt('(preferred)').'</font>'.$/;                  ' '.&mt('(preferred)').'</font>'.$/;
     $last=$hostname;      $last=$hostname;
         }          }
         $spares.= '<br />';  $spares.= '<br />';
  my %all_hostnames = &Apache::lonnet::all_hostnames();  my %all_hostnames = &Apache::lonnet::all_hostnames();
         foreach my $hostid (sort  foreach my $hostid (sort
     {      {
  &Apache::lonnet::hostname($a) cmp   &Apache::lonnet::hostname($a) cmp
     &Apache::lonnet::hostname($b);      &Apache::lonnet::hostname($b);
     }      }
     keys(%all_hostnames)) {      keys(%all_hostnames)) {
             next if ($hostid eq $lonhost || $Apache::lonnet::spareid{$hostid});      next if ($hostid eq $lonhost || $Apache::lonnet::spareid{$hostid});
     my $hostname = &Apache::lonnet::hostname($hostid);      my $hostname = &Apache::lonnet::hostname($hostid);
             next if ($last eq $hostname);      next if ($last eq $hostname);
             $spares.='<br /><a href="http://'.      $spares.='<br /><a href="http://'.
                 $hostname.   $hostname.
                 '/adm/login?domain='.$authdomain.'">'.   '/adm/login?domain='.$authdomain.'">'.
                 $hostname.'</a>';   $hostname.'</a>';
     $last=$hostname;      $last=$hostname;
         }  }
  $r->print(  $r->print(
            '<html>'     '<html>'
           .'<head><title>'    .'<head><title>'
           .&mt('The LearningOnline Network with CAPA')    .&mt('The LearningOnline Network with CAPA')
           .'</title></head>'    .'</title></head>'
           .'<body bgcolor="#FFFFFF">'    .'<body bgcolor="#FFFFFF">'
           .'<h1>'.&mt('The LearningOnline Network with CAPA').'</h1>'    .'<h1>'.&mt('The LearningOnline Network with CAPA').'</h1>'
           .'<img src="/adm/lonKaputt/lonlogo_broken.gif" align="right" />'    .'<img src="/adm/lonKaputt/lonlogo_broken.gif" align="right" />'
           .'<h3>'.&mt('This LON-CAPA server is temporarily not available for login.').'</h3>'    .'<h3>'.&mt('This LON-CAPA server is temporarily not available for login.').'</h3>'
           .'<p>'.&mt('Please attempt to login to one of the following servers:').'</p>'    .'<p>'.&mt('Please attempt to login to one of the following servers:').'</p>'
           .$spares    .$spares
           .'</body>'    .'</body>'
           .'</html>'    .'</html>'
         );  );
         return OK;  return OK;
     }  }
   
 # ----------------------------------------------- Apparently we are in business  # ----------------------------------------------- Apparently we are in business
     $servadm=~s/\,/\<br \/\>/g;  $servadm=~s/\,/\<br \/\>/g;
   
 # ----------------------------------------------------------- Front page design  # ----------------------------------------------------------- Front page design
     my $pgbg=  my $pgbg=&Apache::loncommon::designparm('login.pgbg',$domain);
       ($fullgraph?&Apache::loncommon::designparm('login.pgbg',$domain):'#FFFFFF');  my $font=&Apache::loncommon::designparm('login.font',$domain);
     my $font=  my $link=&Apache::loncommon::designparm('login.link',$domain);
       ($fullgraph?&Apache::loncommon::designparm('login.font',$domain):'#000000');  my $vlink=&Apache::loncommon::designparm('login.vlink',$domain);
     my $link=  my $alink=&Apache::loncommon::designparm('login.alink',$domain);
       ($fullgraph?&Apache::loncommon::designparm('login.link',$domain):'#0000FF');  my $mainbg=&Apache::loncommon::designparm('login.mainbg',$domain);
     my $vlink=  my $logo=&Apache::loncommon::designparm('login.logo',$domain);
       ($fullgraph?&Apache::loncommon::designparm('login.vlink',$domain):'#0000FF');  my $img=&Apache::loncommon::designparm('login.img',$domain);
     my $alink=&Apache::loncommon::designparm('login.alink',$domain);  my $domainlogo='<div>'.&Apache::loncommon::domainlogo($domain).'</div>';
     my $mainbg=  my $login=&Apache::loncommon::designparm('login.login',$domain);
       ($fullgraph?&Apache::loncommon::designparm('login.mainbg',$domain):'#FFFFFF');  if ($login eq '') {
     my $sidebg=  $login = $iconpath.'/'.&mt('userauthentication.gif');
       ($fullgraph?&Apache::loncommon::designparm('login.sidebg',$domain):'#FFFFFF');  }
     my $textcol =   my $showbanner = 1;
       ($fullgraph?&Apache::loncommon::designparm('login.textcol',$domain):'#000000');  my $showmainlogo = 1;
     my $bgcol =  if (defined(&Apache::loncommon::designparm('login.showlogo_img',$domain))) {
       ($fullgraph?&Apache::loncommon::designparm('login.bgcol',$domain):'#FFFFFF');      $showbanner = &Apache::loncommon::designparm('login.showlogo_img',$domain);
     my $logo=&Apache::loncommon::designparm('login.logo',$domain);  }
     my $img=&Apache::loncommon::designparm('login.img',$domain);  if (defined(&Apache::loncommon::designparm('login.showlogo_logo',$domain))) {
     my $domainlogo=&Apache::loncommon::domainlogo($domain);      $showmainlogo = &Apache::loncommon::designparm('login.showlogo_logo',$domain);
     my $login=&Apache::loncommon::designparm('login.login',$domain);  }
     if ($login eq '') {  my $showadminmail=&Apache::loncommon::designparm('login.adminmail',$domain);
         $login = $iconpath.'/'.&mt('userauthentication.gif');  my $showcoursecat =
     }  &Apache::loncommon::designparm('login.coursecatalog',$domain);
     my $showbanner = 1;  my $loginheader =&Apache::loncommon::designparm('login.loginheader',$domain);
     my $showmainlogo = 1;  my $shownewuserlink = 
     if (defined(&Apache::loncommon::designparm('login.showlogo_img',$domain))) {  &Apache::loncommon::designparm('login.newuser',$domain);
         $showbanner = &Apache::loncommon::designparm('login.showlogo_img',$domain);  my $now=time;
     }  my $js = (<<ENDSCRIPT);
     if (defined(&Apache::loncommon::designparm('login.showlogo_logo',$domain))) {  
         $showmainlogo = &Apache::loncommon::designparm('login.showlogo_logo',$domain);  
     }  
     my $showadminmail=&Apache::loncommon::designparm('login.adminmail',$domain);  
     my $showcoursecat =  
         &Apache::loncommon::designparm('login.coursecatalog',$domain);  
     my $loginheader =&Apache::loncommon::designparm('login.loginheader',$domain);  
     my $shownewuserlink =   
         &Apache::loncommon::designparm('login.newuser',$domain);  
     my $now=time;  
     my $js = (<<ENDSCRIPT);  
   
  <script type="text/javascript">  
  // <![CDATA[  
     function send()  
     {  
         this.document.server.elements.uname.value  
        =this.document.client.elements.uname.value;  
   
         this.document.server.elements.udom.value  
        =this.document.client.elements.udom.value;  
   
         this.document.server.elements.imagesuppress.value  
        =this.document.client.elements.imagesuppress.checked;  
   
         this.document.server.elements.embedsuppress.value  
        =this.document.client.elements.embedsuppress.checked;  
   
         this.document.server.elements.appletsuppress.value  
        =this.document.client.elements.appletsuppress.checked;  
   
         this.document.server.elements.fontenhance.value  
        =this.document.client.elements.fontenhance.checked;  
   
         this.document.server.elements.blackwhite.value  
        =this.document.client.elements.blackwhite.checked;  
   
         this.document.server.elements.remember.value  
        =this.document.client.elements.remember.checked;  
   
         uextkey=this.document.client.elements.uextkey.value;  
         lextkey=this.document.client.elements.lextkey.value;  
         initkeys();  
   
         this.document.server.elements.upass0.value  <script type="text/javascript" language="JavaScript">
             =crypted(this.document.client.elements.upass$now.value.substr(0,15));  // <![CDATA[
         this.document.server.elements.upass1.value  function send()
             =crypted(this.document.client.elements.upass$now.value.substr(15,15));  {
         this.document.server.elements.upass2.value  this.document.server.elements.uname.value
             =crypted(this.document.client.elements.upass$now.value.substr(30,15));  =this.document.client.elements.uname.value;
   
   this.document.server.elements.udom.value
   =this.document.client.elements.udom.value;
   
   uextkey=this.document.client.elements.uextkey.value;
   lextkey=this.document.client.elements.lextkey.value;
   initkeys();
   
   this.document.server.elements.upass0.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='';
   
         this.document.server.submit();  this.document.server.submit();
         return false;  return false;
     }  }
  // ]]>  // ]]>
  </script>  </script>
   
 ENDSCRIPT  ENDSCRIPT
   
 # --------------------------------------------------- Print login screen header  # --------------------------------------------------- Print login screen header
   
     my %add_entries = (topmargin    => "0",  my %add_entries = (
                        leftmargin   => "0",         bgcolor      => "$mainbg",
                        marginheight => "0",         text         => "$font",
                        marginwidth  => "0",         link         => "$link",
                        bgcolor      => "$pgbg",         vlink        => "$vlink",
                        text         => "$font",         alink        => "$alink",);
                        link         => "$link",  
                        vlink        => "$vlink",  $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js,
                        alink        => "$alink",);         { 'redirect'       => [$expire,'/adm/roles'], 
    'add_entries' => \%add_entries,
     $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js,   'only_body'   => 1,}));
                                        { 'redirect'       => [$expire,'/adm/roles'],   
                                          'add_entries' => \%add_entries,  
                                          'only_body'   => 1,}));  
   
 # ----------------------------------------------------------------------- Texts  # ----------------------------------------------------------------------- Texts
   
 my %lt=&Apache::lonlocal::texthash(  my %lt=&Apache::lonlocal::texthash(
   'un'  => 'Username',            'un'       => 'Username',
   'pw'  => 'Password',            'pw'       => 'Password',
   'dom' => 'Domain',            'dom'      => 'Domain',
   'load' => 'Server Load',            'perc'     => 'percent',
                   'userload' => 'User Load',            'load'     => 'Server Load',
                   'about'  => 'About LON-CAPA',            'userload' => 'User Load',
                   'access' => 'Accessibility Options',            'catalog'  => 'Course/Community Catalog',
                   'catalog' => 'Course/Community Catalog',            'log'      => 'Log in',
   'log' => 'Log in',            'help'     => 'Log-in Help',
   'help' => 'Log-in Help',            'serv'     => 'Server',
   'serv' => 'Server',            'servadm'  => 'Server Administration',
                   'servadm' => 'Server Administration',            'helpdesk' => 'Contact Helpdesk',
                   'helpdesk' => 'Contact Helpdesk',            'forgotpw' => 'Forgot password?',
                   'forgotpw' => 'Forgot password?',            'newuser'  => 'New User?',
                   'newuser'  => 'New User?',         );
                   'options_headline' => 'Select Accessibility Options',  
                   'sprs_img' => 'Suppress rendering of images',  
                   'sprs_applet' => 'Suppress Java applets',  
                   'sprs_embed' => 'Suppress rendering of embedded multimedia',  
                   'sprs_font' => 'Increase font size',  
                   'sprs_blackwhite' => 'Switch to black and white mode',  
                   'remember' => 'Remember these settings for next login');  
 # -------------------------------------------------- Change password field name  # -------------------------------------------------- Change password field name
     my $forgotpw = &forgotpwdisplay(%lt);  
     my $loginhelp = &loginhelpdisplay(%lt);  my $forgotpw = &forgotpwdisplay(%lt);
   $forgotpw .= '<br />' if $forgotpw;
   my $loginhelp = &loginhelpdisplay(%lt);
   $loginhelp .= '<br />' if $loginhelp;
   
 # ---------------------------------------------------- Serve out DES JavaScript  # ---------------------------------------------------- Serve out DES JavaScript
     {  {
         my $jsh=Apache::File->new($include."/londes.js");  my $jsh=Apache::File->new($include."/londes.js");
         $r->print(<$jsh>);  $r->print(<$jsh>);
     }  }
 # ---------------------------------------------------------- Serve rest of page  # ---------------------------------------------------------- Serve rest of page
   
     if ($fullgraph) {  $r->print(
  $r->print(    '<div class="LC_loginpage_container">');
   '<table width="100%" cellpadding="0" cellspacing="0" border="0">');  
     }  #
   #  If the loadbalancing yielded just http:// because perhaps there's no loadbalancing?
   #  then just us a relative link to authenticate:
   #
   
     $r->print(<<ENDSERVERFORM);  $r->print(<<ENDSERVERFORM);
   <form name="server" action="$otherserver/adm/authenticate" method="post" target="_top">  <form name="server" action="$otherserver/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="interface" value="$env{'form.interface'}" />  
    <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="upass1" value="" />
    <input type="hidden" name="upass2" value="" />     <input type="hidden" name="upass2" value="" />
    <input type="hidden" name="udom" value="" />     <input type="hidden" name="udom" value="" />
    <input type="hidden" name="imagesuppress"  value="" />  
    <input type="hidden" name="appletsuppress"  value="" />  
    <input type="hidden" name="embedsuppress"  value="" />  
    <input type="hidden" name="fontenhance"  value="" />  
    <input type="hidden" name="blackwhite"  value="" />  
    <input type="hidden" name="remember"  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'}" />
   </form>    </form>
 ENDSERVERFORM  ENDSERVERFORM
     my $coursecatalog;  my $coursecatalog;
     if (($showcoursecat eq '') || ($showcoursecat)) {  if (($showcoursecat eq '') || ($showcoursecat)) {
         $coursecatalog = &coursecatalog_link($lt{'catalog'});      $coursecatalog = &coursecatalog_link($lt{'catalog'}).'<br />';
     }  }
     my $newuserlink;  my $newuserlink;
     if ($shownewuserlink) {  if ($shownewuserlink) {
         $newuserlink = &newuser_link($lt{'newuser'});      $newuserlink = &newuser_link($lt{'newuser'}).'<br />';
     }  }
     if ($fullgraph) {  my $logintitle;
         $r->print(<<HEADER);  if ($loginheader eq 'text') {
   <!-- The LON-CAPA Header -->      $logintitle ='<h2>'.$lt{'log'}.'</h2>';
   <tr>  } else {
       $logintitle = '<img src="'.$login.'" alt="'.
                     &mt('User Authentication').'" />';
   }
   
    <!-- Row 1 Columns 2-4 -->  my $noscript_warning='<noscript><span class="LC_warning"><b>'
    <td width="100%" height=75 colspan=4 align="left" valign="top" bgcolor="$pgbg">                       .&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.')
 HEADER                      .'</b></span></noscript>';
         if ($showbanner) {  my $helpdeskscript;
             $r->print(<<ENDBANNER);  my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,
 <img src="$img" border="0" alt="The Learning Online Network with CAPA" />                                     $authdomain,\$helpdeskscript);
 ENDBANNER  
         }  my $loginform=(<<LFORM);
         $r->print(<<ENDSTART);  <form name="client" action="" onsubmit="return(send())">
    </td>    <input type="hidden" name="lextkey" value="$lextkey" />
   </tr>    <input type="hidden" name="uextkey" value="$uextkey" />
     <b><label for="uname">$lt{'un'}</label>:</b><br />
   <!-- The gray bar that starts the two table frames -->    <input type="text" name="uname" id="uname" size="15" value="$authusername" /><br />
   <tr>    <b><label for="upass$now">$lt{'pw'}</label>:</b><br />
     <input type="password" name="upass$now" id="upass$now" size="15" /><br />
    <!-- Row 2 Column 1 -->    <b><label for="udom">$lt{'dom'}</label>:</b><br />
    <td width=182 height=27 bgcolor="$sidebg">&nbsp;</td>    <input type="text" name="udom" id="udom" size="15" value="$authdomain" /><br />
     <input type="submit" value="$lt{'log'}" />
    <!-- Row 2 Column 2 -->  </form>
    <td width=27 height=27 align="left" background="$iconpath/filltop.gif"><img src="$iconpath/upperleft.gif" border=0 alt="" /></td>  LFORM
   
    <!-- Row 2 Column 3 -->  
    <td height=27 background="$iconpath/filltop.gif"><img src="$iconpath/filltop.gif" alt="" /></td>  
   
    <!-- Row 2 Column 4 -->  
    <td width=27 height=27 align="right" background="$iconpath/filltop.gif"><img src="$iconpath/upperright.gif" border=0 alt="" /></td>  
   </tr>  
   <tr>  
      
    <!-- A cell that will hold the 'access', 'about', and 'catalog' links -->  
    <!-- Row 3 Column 1 -->  
    <td valign="top" height="60" align="left" bgcolor="$sidebg">  
     <table cellpadding="0" cellspacing="2" border="0">  
      <tr>  
       <td>&nbsp;</td>  
       <td><a href="/adm/login?interface=textual"><b>$lt{'access'}</b></a></td>  
      </tr>  
      <tr>  
       <td>&nbsp;</td>  
       <td><a href="/adm/about.html"><b>$lt{'about'}</b></a></td>  
      </tr>$coursecatalog  
      <tr>  
       <td colspan="2">&nbsp;</td>  
      </tr>  
     </table>  
    </td>  
    <!-- The shaded space between the two main columns -->  
    <!-- Row 3 Column 2 -->  
    <td width=27 height=60 background="$iconpath/fillleft.gif"><img src="$iconpath/fillleft.gif" alt="" /></td>  
   
    <!-- The right main column holding the large LON-CAPA logo-->  
    <!-- Rows 3-4 Column 3 -->  
    <td align="center" valign="top" width="100%" height="100%" bgcolor="$mainbg">  
 ENDSTART  
         if ($showmainlogo) {  
             $r->print(<<ENDLOGO);  
     <center>  
      <img src="$logo" alt="" />  
     </center>  
 ENDLOGO  
         }  
         $r->print(<<ENDTOP);  
    </td>  
   
    <!-- Row 3 Column 4 -->      if ($showbanner) {
    <td width=27 background="$iconpath/fillright.gif"><img src="$iconpath/fillright.gif" alt="" /></td>          $r->print(<<HEADER);
   </tr>  <!-- The LON-CAPA Header -->
   <tr>  <div style="background:$pgbg;margin:0;width:100%;">
     <img src="$img" border="0" alt="The Learning Online Network with CAPA" />
    <!-- The entry form -->  </div>
    <!-- Row 4 Column 1 -->  HEADER
    <td align="center" valign="middle" bgcolor="$sidebg">      }
       $r->print(<<ENDTOP);
   <div class="LC_loginpage_space">&nbsp;</div>
   <div class="LC_loginpage_floatLeft">
   <div class="LC_loginpage_loginContainer">
     $logintitle
      <table border="0" align="left" cellspacing="1" cellpadding="2" width="100%">
         <tr>
      <td>
    $loginform
              </td>
         </tr>
      </table>  
      $noscript_warning
   </div>
     
   <div class="LC_loginpage_loginInfo">
     $loginhelp
     $forgotpw
     $contactblock
     $newuserlink
     $coursecatalog
   </div>
   </div>
   ENDTOP
       if ($showmainlogo) {
           $r->print(' <img src="'.$logo.'" alt="" />'."\n");
       }
   $r->print(<<ENDTOP);
   $announcements
   $domainlogo
   <div class="LC_loginpage_space">&nbsp;</div>
 ENDTOP  ENDTOP
     } else {  
         $r->print('<h1>The Learning<i>Online</i> Network with CAPA</h1>'  
                  .'<h2>'.&mt('Text-based Interface Login').'</h2>'  
                  .$announcements);  
     }  
     $r->print('<form name="client" action="" onsubmit="return(send())">');  
     unless ($fullgraph) {  
         $r->print(<<ENDACCESSOPTIONS);  
 <h3>$lt{'options_headline'}</h3>  
 <label><input type="checkbox" name="imagesuppress" /> $lt{'sprs_img'}</label><br />  
 <label><input type="checkbox" name="appletsuppress" /> $lt{'sprs_applet'}</label><br />  
 <label><input type="checkbox" name="embedsuppress" /> $lt{'sprs_embed'}</label><br />  
 <label><input type="checkbox" name="fontenhance" /> $lt{'sprs_font'}</label><br />  
 <label><input type="checkbox" name="blackwhite" /> $lt{'sprs_blackwhite'}</label><br />  
 <br />  
 <input type="checkbox" name="remember" /> $lt{'remember'}<hr />  
 ENDACCESSOPTIONS  
     } else {  
         $r->print(<<ENDNOOPT);  
 <input type="hidden" name="imagesuppress"  value="" />  
 <input type="hidden" name="embedsuppress"  value="" />  
 <input type="hidden" name="appletsuppress"  value="" />  
 <input type="hidden" name="fontenhance"  value="" />  
 <input type="hidden" name="blackwhite"  value="" />  
 <input type="hidden" name="remember"  value="" />  
 ENDNOOPT  
     }  
     my $logintitle;  
     if ($loginheader eq 'text') {  
         $logintitle = '<td bgcolor="'.$bgcol.'" colspan="2">&nbsp;&nbsp;&nbsp;<b><font size="+1" color="'.$textcol.'">'.$lt{'log'}.'</font></b></td>';  
     } else {  
         $logintitle = '<td bgcolor="'.$sidebg.'" colspan="2"><img src="'.$login.'" alt="'.  
                       &mt('User Authentication').'" /></td>';  
     }  
     my $noscript_warning='<td colspan="2" bgcolor="'.$mainbg.'">'  
                         .'<noscript><div class="LC_warning"><font size="-1">'  
                         .&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.')  
                         .'</font></div></noscript></td>';  
     $r->print(<<ENDLOGIN);  
      <input type="hidden" name="lextkey" value="$lextkey" />  
      <input type="hidden" name="uextkey" value="$uextkey" />  
   
      <!-- Start the sub-table for text and input alignment -->  $r->print(<<ENDDOCUMENT);
      <table border="0" cellspacing="0" cellpadding="0">       <table border="0" cellspacing="0" cellpadding="0">
       <tr>$logintitle</tr>  
       <tr>$noscript_warning</tr>  
       <tr>        <tr>
        <td bgcolor="$mainbg"><br /><font size=-1><b>&nbsp;&nbsp;&nbsp;<label for="uname">$lt{'un'}</label>:</b></font></td>         <td  align="left" valign="top">
        <td bgcolor="$mainbg"><br /><input type="text" name="uname" size="10" value="$authusername" /></td>          <small><b>$lt{'dom'}:&nbsp;</b></small>
       </tr>  
       <tr>  
        <td bgcolor="$mainbg"><font size=-1><b>&nbsp;&nbsp;&nbsp;<label for="upass$now">$lt{'pw'}</label>:</b></font></td>  
        <td bgcolor="$mainbg"><input type="password" name="upass$now" size="10" /></td>  
       </tr>  
       <tr>  
        <td bgcolor="$mainbg"><font size=-1><b>&nbsp;&nbsp;&nbsp;<label for="udom">$lt{'dom'}</label>:</b></font></td>  
        <td bgcolor="$mainbg"><input type="text" name="udom" size="10" value="$authdomain" /></td>  
       </tr>  
       <tr>  
        <td bgcolor="$mainbg">&nbsp;</td>  
        <td bgcolor="$mainbg" valign="bottom" align="center">  
         <br />  
         <input type="submit" value="$lt{'log'}" />  
        </td>         </td>
       </tr>         <td  align="left" valign="top">
       <tr>          <small><tt>&nbsp;$domain</tt></small>
        <td bgcolor="$mainbg" valign="bottom" align="left" colspan="2">  
         $loginhelp  
         $forgotpw  
         $newuserlink  
         <br />  
        </td>         </td>
       </tr>        </tr>
      </table>  
      <!-- End sub-table -->  
     </form>  
 ENDLOGIN  
     if ($fullgraph) {  
         my $helpdeskscript;  
         my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,  
                                   $version,$authdomain,\$helpdeskscript);  
  $r->print(<<ENDDOCUMENT);  
    </td>  
   
    <!-- Row 4 Column 2 -->  
    <td width=27 background="$iconpath/fillleft.gif"><img src="$iconpath/fillleft.gif" alt="" /></td>  
   
    <!-- Row 4 Column 3 -->  
 <td bgcolor="$mainbg">$announcements</td>  
   
    <!-- Row 4 Column 4 -->  
    <td width=27 background="$iconpath/fillright.gif"><img src="$iconpath/fillright.gif" alt="" /></td>  
   </tr>  
   <tr>  
   
    <!-- Row 5 Column 1 -->  
    <td bgcolor="$sidebg" valign="middle" align="left">  
      <br />  
      <table border="0" cellspacing="0" cellpadding="0">  
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top">         <td  align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'dom'}:&nbsp;</b></small>          <small><b>$lt{'serv'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="middle">         <td align="left" valign="top">
         <small><tt>&nbsp;$domain</tt></small>          <small><tt>&nbsp;$lonhost ($role)</tt></small>
        </td>         </td>
       </tr>        </tr>
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top">         <td align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'serv'}:&nbsp;</b></small>          <small><b>$lt{'load'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="middle">         <td align="left" valign="top">
         <small><tt>&nbsp;$lonhost ($role)</tt></small>          <small><tt>&nbsp;$loadpercent $lt{'perc'}</tt></small>
        </td>         </td>
       </tr>        </tr>
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top"><span class="LC_nobreak">         <td align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'load'}:&nbsp;</b></small></span>          <small><b>$lt{'userload'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="middle">         <td align="left" valign="top">
         <small><tt>&nbsp;$loadpercent%</tt></small>          <small><tt>&nbsp;$userloadpercent $lt{'perc'}</tt></small>
        </td>         </td>
       </tr>        </tr>
       <tr>        <tr>
        <td bgcolor="$sidebg" align="left" valign="top"><span class="LC_nobreak">         <td colspan="2" align="left">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'userload'}:&nbsp;</b></small></span>          <small>$version</small>
        </td>  
        <td bgcolor="$sidebg" align="left" valign="middle">  
         <small><tt>&nbsp;$userloadpercent%</tt></small>  
        </td>         </td>
       </tr>        </tr>
      </table>       </table>
      <br />   </div>
     $contactblock  
    </td>  
   
    <!-- Row 5 Column 2 -->  
    <td width=27 background="$iconpath/fillleft.gif"><img src="$iconpath/fillleft.gif" alt="" /></td>  
   
    <!-- Row 5 Column 3 -->  
    <td width="100%" valign="bottom" bgcolor="$mainbg">  
 $domainlogo  
 </td>  
   
    <!-- Row 5 Column 4 -->  
    <td width=27 background="$iconpath/fillright.gif"><img src="$iconpath/fillright.gif" alt="" /></td>  
   </tr>  
   <tr>  
   
    <!-- Row 6 Column 1 -->  
    <td bgcolor="$sidebg">&nbsp;</td>  
   
    <!-- Row 6 Column 2 -->  
    <td align="left" background="$iconpath/fillbottom.gif"><img src="$iconpath/lowerleft.gif" alt="" /></td>  
   
    <!-- Row 6 Column 3 -->  
    <td background="$iconpath/fillbottom.gif"><img src="$iconpath/fillbottom.gif" alt="" /></td>  
   
    <!-- Row 6 Column 4 -->  
    <td align="right" background="$iconpath/fillbottom.gif"><img src="$iconpath/lowerright.gif" alt="" /></td>  
   </tr>  
  </table>  
   
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
Line 683  if ( document.client.uname ) { document. Line 524  if ( document.client.uname ) { document.
 $helpdeskscript  $helpdeskscript
   
 ENDDOCUMENT  ENDDOCUMENT
 }  
     my %endargs = ( 'noredirectlink' => 1, );      my %endargs = ( 'noredirectlink' => 1, );
     $r->print(&Apache::loncommon::end_page(\%endargs));      $r->print(&Apache::loncommon::end_page(\%endargs));
     return OK;      return OK;
 }  }
   
   sub redirect_page {
       my ($desthost) = @_;
       my $protocol = $Apache::lonnet::protocol{$desthost};
       $protocol = 'http' if ($protocol ne 'https');
       my $url = $protocol.'://'.&Apache::lonnet::hostname($desthost).'/';
       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,$authdomain,$helpdeskscript) = @_;
     my $contactblock;      my $contactblock;
     my $showhelpdesk = 0;      my $showhelpdesk = 0;
     my $requestmail = $Apache::lonnet::perlvar{'lonSupportEMail'};      my $requestmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
Line 698  sub contactdisplay { Line 552  sub contactdisplay {
         $showhelpdesk = 1;          $showhelpdesk = 1;
     }      }
     if ($servadm && $showadminmail) {      if ($servadm && $showadminmail) {
         $contactblock .= '<b>&nbsp;&nbsp;&nbsp;'.$$lt{'servadm'}.':</b><br />'.          $contactblock .= $$lt{'servadm'}.':<br />'.
                          '<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$servadm.'</tt><br />&nbsp;<br />';                           '<tt>'.$servadm.'</tt><br />';
     }      }
     if ($showhelpdesk) {      if ($showhelpdesk) {
         $contactblock .= '<b>&nbsp;&nbsp;&nbsp;<a href="javascript:helpdesk()"><font size="+1">'.$lt->{'helpdesk'}.'</font></a></b><br />';          $contactblock .= '<a href="javascript:helpdesk()">'.$lt->{'helpdesk'}.'</a><br />';
         my $thisurl = &escape('/adm/login');          my $thisurl = &escape('/adm/login');
         $$helpdeskscript = <<"ENDSCRIPT";          $$helpdeskscript = <<"ENDSCRIPT";
 <script type="text/javascript">  <script type="text/javascript">
Line 720  function helpdesk() { Line 574  function helpdesk() {
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
     }      }
     $contactblock .= <<"ENDBLOCK";  
      &nbsp;&nbsp;&nbsp;$version  
 ENDBLOCK  
     return $contactblock;      return $contactblock;
 }  }
   
Line 730  sub forgotpwdisplay { Line 581  sub forgotpwdisplay {
     my (%lt) = @_;      my (%lt) = @_;
     my $prompt_for_resetpw = 1;       my $prompt_for_resetpw = 1; 
     if ($prompt_for_resetpw) {      if ($prompt_for_resetpw) {
         return '<br />&nbsp;&nbsp;&nbsp;<a href="/adm/resetpw">'.$lt{'forgotpw'}.'</a></b><br />';          return '<a href="/adm/resetpw">'.$lt{'forgotpw'}.'</a>';
     }      }
     return;      return;
 }  }
Line 739  sub loginhelpdisplay { Line 590  sub loginhelpdisplay {
     my (%lt) = @_;      my (%lt) = @_;
     my $login_help = 1;      my $login_help = 1;
     if ($login_help) {      if ($login_help) {
         return '&nbsp;&nbsp;&nbsp;<a href="/adm/loginproblems.html">'.$lt{'help'}.'</a></b>';      my $dom = &Apache::lonnet::default_login_domain();
    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 {
           return '<a href="/adm/loginproblems.html">'.$lt{'help'}.'</a>';
           }
     }      }
     return;      return;
 }  }
Line 747  sub loginhelpdisplay { Line 605  sub loginhelpdisplay {
 sub coursecatalog_link {  sub coursecatalog_link {
     my ($linkname) = @_;      my ($linkname) = @_;
     return <<"END";      return <<"END";
      <tr>        <a href="/adm/coursecatalog">$linkname</a>
       <td>&nbsp;</td>  
       <td><span class="LC_nobreak"><a href="/adm/coursecatalog"><b>$linkname</b></a></span></td>  
      </tr>  
 END  END
 }  }
   
 sub newuser_link {  sub newuser_link {
     my ($linkname) = @_;      my ($linkname) = @_;
     return '&nbsp;&nbsp;&nbsp;<a href="/adm/createaccount"><b>'.$linkname.'</b></a><br />';      return '<a href="/adm/createaccount">'.$linkname.'</a>';
 }  }
   
 1;  1;

Removed from v.1.106.4.6  
changed lines
  Added in v.1.132


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.