Diff for /loncom/auth/lonlogin.pm between versions 1.98 and 1.129

version 1.98, 2008/01/16 20:42:44 version 1.129, 2009/10/23 16:14:36
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'})) {
           &Apache::lonacc::get_posted_cgi($r,['firsturl']);
       }
   
 # -- check if they are a migrating user  # -- check if they are a migrating user
     if (defined($env{'form.token'})) {      if (defined($env{'form.token'})) {
Line 78  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();
  $r->print(<<ENDFAILED);          my $dest = '/adm/roles';
 $start_page          if ($env{'form.firsturl'} ne '') {
 <h1>You are already logged in</h1>              $dest = $env{'form.firsturl'}; 
 <p>Please either <a href="/adm/roles">continue the current session</a> or          }
 <a href="/adm/logout">logout</a>.</p>   $r->print(
 <p>                    $start_page
 <a href="/adm/loginproblems.html">Problems?</a></p>                   .'<h1>'.&mt('You are already logged in!').'</h1>'
 $end_page                   .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].',
 ENDFAILED                    '<a href="'.$dest.'">','</a>','<a href="/adm/logout">','</a>').'</p>'
                    .'<p><a href="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'
                    .$end_page
                    );
         return OK;          return OK;
     }      }
   
Line 100  ENDFAILED Line 106  ENDFAILED
 # ----------------------------------------------------------- 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 122  ENDFAILED Line 131  ENDFAILED
     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 177  ENDFAILED Line 185  ENDFAILED
     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 199  ENDFAILED Line 217  ENDFAILED
                 $hostname.                  $hostname.
                 '/adm/login?domain='.$authdomain.'">'.                  '/adm/login?domain='.$authdomain.'">'.
                 $hostname.'</a>'.                  $hostname.'</a>'.
                 ' (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(<<ENDTROUBLE);  $r->print(
 <html>     '<html>'
 <head><title>The LearningOnline Network with CAPA</title></head>    .'<head><title>'
 <body bgcolor="#FFFFFF">    .&mt('The LearningOnline Network with CAPA')
 <img src="/adm/lonKaputt/lonlogo_broken.gif" align="right" />    .'</title></head>'
 <h3>This LON-CAPA server is temporarily not available for login</h3>    .'<body bgcolor="#FFFFFF">'
 <p>Please attempt to login to one of the following servers:</p>$spares    .'<h1>'.&mt('The LearningOnline Network with CAPA').'</h1>'
 </body>    .'<img src="/adm/lonKaputt/lonlogo_broken.gif" align="right" />'
 </html>    .'<h3>'.&mt('This LON-CAPA server is temporarily not available for login.').'</h3>'
 ENDTROUBLE    .'<p>'.&mt('Please attempt to login to one of the following servers:').'</p>'
         return OK;    .$spares
     }    .'</body>'
     .'</html>'
   );
   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=&Apache::loncommon::domainlogo($domain);
     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 $showadminmail=&Apache::loncommon::designparm('login.adminmail',$domain);  my $loginheader =&Apache::loncommon::designparm('login.loginheader',$domain);
     my $showcoursecat =  my $shownewuserlink = 
         &Apache::loncommon::designparm('login.coursecatalog',$domain);  &Apache::loncommon::designparm('login.newuser',$domain);
     my $loginheader =&Apache::loncommon::designparm('login.loginheader',$domain);  my $now=time;
     my $now=time;  my $js = (<<ENDSCRIPT);
     my $js = (<<ENDSCRIPT);  
   <script type="text/javascript" language="JavaScript">
  <script language="JavaScript">  // <![CDATA[
     function send()  function send()
     {  {
         this.document.server.elements.uname.value  this.document.server.elements.uname.value
        =this.document.client.elements.uname.value;  =this.document.client.elements.uname.value;
   
         this.document.server.elements.udom.value  this.document.server.elements.udom.value
        =this.document.client.elements.udom.value;  =this.document.client.elements.udom.value;
   
         this.document.server.elements.imagesuppress.value  uextkey=this.document.client.elements.uextkey.value;
        =this.document.client.elements.imagesuppress.checked;  lextkey=this.document.client.elements.lextkey.value;
   initkeys();
         this.document.server.elements.embedsuppress.value  
        =this.document.client.elements.embedsuppress.checked;  this.document.server.elements.upass0.value
       =crypted(this.document.client.elements.upass$now.value.substr(0,15));
         this.document.server.elements.appletsuppress.value  this.document.server.elements.upass1.value
        =this.document.client.elements.appletsuppress.checked;      =crypted(this.document.client.elements.upass$now.value.substr(15,15));
   this.document.server.elements.upass2.value
         this.document.server.elements.fontenhance.value      =crypted(this.document.client.elements.upass$now.value.substr(30,15));
        =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  
             =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',
   'perc' => 'percent',            'perc'     => 'percent',
   'load' => 'Load',            'load'     => 'Server Load',
                   'userload' => 'User Load',            'userload' => 'User Load',
                   'about'  => 'About LON-CAPA',            'catalog'  => 'Course/Community Catalog',
                   'access' => 'Accessibility Options',            'log'      => 'Log in',
                   'catalog' => 'Course Catalog',            'help'     => 'Log-in Help',
   'log' => 'Log in',            'serv'     => 'Server',
   'help' => 'Log-in Help',            'servadm'  => 'Server Administration',
   'serv' => 'Server',            'helpdesk' => 'Contact Helpdesk',
                   'servadm' => 'Server Administration',            'forgotpw' => 'Forgot password?',
                   'helpdesk' => 'Contact Helpdesk',            'newuser'  => 'New User?',
                   'forgotpw' => 'Forgot password?');         );
 # -------------------------------------------------- Change password field name  # -------------------------------------------------- Change password field name
     my $forgotpw = &forgotpwdisplay(%lt);  my $forgotpw = &forgotpwdisplay(%lt);
     my $loginhelp = &loginhelpdisplay(%lt);  my $loginhelp = &loginhelpdisplay(%lt);
   
 # ---------------------------------------------------- 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>');  
     }  
   
     $r->print(<<ENDSERVERFORM);  #
   <form name="server" action="$otherserver/adm/authenticate" method="post" target="_top">  #  If the loadbalancing yielded just http:// because perhaps there's no loadbalancing?
   #  then just us a relative link to authenticate:
   #
   
   $r->print(<<ENDSERVERFORM);
   <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'});
     }  }
     if ($fullgraph) { $r->print(<<ENDTOP);  my $newuserlink;
   <!-- The LON-CAPA Header -->  if ($shownewuserlink) {
   <tr>      $newuserlink = &newuser_link($lt{'newuser'}).'<br />';
   
    <!-- Row 1 Columns 2-4 -->  
    <td width="100%" height=75 colspan=4 align="left" valign="top" bgcolor="$pgbg"><img src="$img" border=0 alt="The Learning Online Network with CAPA" /></td>  
   </tr>  
   
   <!-- The gray bar that starts the two table frames -->  
   <tr>  
   
    <!-- Row 2 Column 1 -->  
    <td width=182 height=27 bgcolor="$sidebg">&nbsp;</td>  
   
    <!-- Row 2 Column 2 -->  
    <td width=27 height=27 align="left" background="$iconpath/filltop.gif"><img src="$iconpath/upperleft.gif" border=0 alt="" /></td>  
   
    <!-- 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">  
     <center>  
      <img src="$logo" alt="" />  
     </center>  
    </td>  
   
    <!-- Row 3 Column 4 -->  
    <td width=27 background="$iconpath/fillright.gif"><img src="$iconpath/fillright.gif" alt="" /></td>  
   </tr>  
   <tr>  
   
    <!-- The entry form -->  
    <!-- Row 4 Column 1 -->  
    <td align="center" valign="middle" bgcolor="$sidebg">  
 ENDTOP  
 } else {  
     $r->print('<h1>The Learning<i>Online</i> Network with CAPA</h1><h2>Text-based Interface Login</h2>'.$announcements);  
 }  }
     $r->print('<form name="client" onsubmit="return(send())">');  my $logintitle;
     unless ($fullgraph) {  if ($loginheader eq 'text') {
         $r->print(<<ENDACCESSOPTIONS);      $logintitle ='<h2>'.$lt{'log'}.'</h2>';
 <h3>Select Accessibility Options</h3>  
 <label><input type="checkbox" name="imagesuppress" /> Suppress rendering of images</label><br />  
 <label><input type="checkbox" name="appletsuppress" /> Suppress Java applets</label><br />  
 <label><input type="checkbox" name="embedsuppress" /> Suppress rendering of embedded multimedia</label><br />  
 <label><input type="checkbox" name="fontenhance" /> Increase font size</label><br />  
 <label><input type="checkbox" name="blackwhite" /> Switch to black and white mode</label><br />  
 <input type="checkbox" name="remember" /> Remember these settings for next login<hr />  
 ENDACCESSOPTIONS  
 } else {  } else {
     $r->print(<<ENDNOOPT);      $logintitle = '<img src="'.$login.'" alt="'.
 <input type="hidden" name="imagesuppress"  value="" />                    &mt('User Authentication').'" />';
 <input type="hidden" name="embedsuppress"  value="" />  }
 <input type="hidden" name="appletsuppress"  value="" />  
 <input type="hidden" name="fontenhance"  value="" />  my $noscript_warning='<noscript><span class="LC_warning"><b>'
 <input type="hidden" name="blackwhite"  value="" />                       .&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.')
 <input type="hidden" name="remember"  value="" />                      .'</b></span></noscript>';
 ENDNOOPT  my $helpdeskscript;
 }  my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,
     my $logintitle;                              $version,$authdomain,\$helpdeskscript);
     if ($loginheader eq 'text') {  
         $logintitle = '<td bgcolor="'.$bgcol.'" colspan="2">&nbsp;&nbsp;&nbsp;<b><font size="+1" color="'.$textcol.'">'.$lt{'log'}.'</font></b></td>';  my $loginform=(<<LFORM);
     } else {  <form name="client" action="" onsubmit="return(send())">
         $logintitle = '<td bgcolor="'.$sidebg.'" colspan="2"><img src="'.$login.'" alt="'.    <input type="hidden" name="lextkey" value="$lextkey" />
                       &mt('User Authentication').'" /></td>';    <input type="hidden" name="uextkey" value="$uextkey" />
     }    <b><label for="uname">$lt{'un'}</label>:</b><br />
     $r->print(<<ENDLOGIN);    <input type="text" name="uname" size="15" value="$authusername" /><br />
      <input type="hidden" name="lextkey" value="$lextkey">    <b><label for="upass$now">$lt{'pw'}</label>:</b><br />
      <input type="hidden" name="uextkey" value="$uextkey">    <input type="password" name="upass$now" size="15" /><br />
     <b><label for="udom">$lt{'dom'}</label>:</b><br />
      <!-- Start the sub-table for text and input alignment -->    <input type="text" name="udom" size="15" value="$authdomain" /><br />
      <table border=0 cellspacing=0 cellpadding=0>    <input type="submit" value="$lt{'log'}" />
       <tr>$logintitle</tr>  </form>
       <tr>  LFORM
        <td bgcolor="$mainbg"><br /><font size=-1><b>&nbsp;&nbsp;&nbsp;<label for="uname">$lt{'un'}</label>:</b></font></td>  
        <td bgcolor="$mainbg"><br /><input type="text" name="uname" size="10" value="$authusername" /></td>      if ($showbanner) {
       </tr>          $r->print(<<HEADER);
       <tr>  <!-- The LON-CAPA Header -->
        <td bgcolor="$mainbg"><font size=-1><b>&nbsp;&nbsp;&nbsp;<label for="upass$now">$lt{'pw'}</label>:</b></font></td>  <table border="0" align="left" width="100%" cellspacing="0" cellpadding="1">
        <td bgcolor="$mainbg"><input type="password" name="upass$now" size="10" /></td>   <tr>
       </tr>    <td align="left" valign="top" bgcolor="$pgbg">
       <tr>        <img src="$img" border="0" alt="The Learning Online Network with CAPA" />
        <td bgcolor="$mainbg"><font size=-1><b>&nbsp;&nbsp;&nbsp;<label for="udom">$lt{'dom'}</label>:</b></font></td>    </td>
        <td bgcolor="$mainbg"><input type="text" name="udom" size="10" value="$authdomain" /></td>   </tr>
       </tr>  </table>
       <tr>  HEADER
        <td bgcolor="$mainbg">&nbsp;</td>      }
        <td bgcolor="$mainbg" valign="bottom" align="center">      $r->print(<<ENDTOP);
         <br />  <div class="LC_loginpage_space">&nbsp;</div>
         <input type="submit" value="$lt{'log'}" />  <div class="LC_loginpage_floatLeft">
        </td>  <div class="LC_loginpage_loginContainer">
       </tr>    $logintitle
      <table border="0" align="left" cellspacing="1" cellpadding="2" width="100%">
       <tr>        <tr>
        <td bgcolor="$mainbg" valign="bottom" align="left" colspan="2">     <td>
         $loginhelp   $loginform
         $forgotpw             </td>
        </td>  
       </tr>        </tr>
      </table>     </table>  
      <!-- End sub-table -->     $noscript_warning
     </form>  </div>
 ENDLOGIN    
     if ($fullgraph) {  <div class="LC_loginpage_loginInfo">
         my $helpdeskscript;          $loginhelp<br />
         my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,          $forgotpw<br />
                                   $version,$authdomain,\$helpdeskscript);   $contactblock<br />
  $r->print(<<ENDDOCUMENT);          $newuserlink
    </td>          $coursecatalog
   </div>
    <!-- Row 4 Column 2 -->  </div>
    <td width=27 background="$iconpath/fillleft.gif"><img src="$iconpath/fillleft.gif" alt="" /></td>  ENDTOP
       if ($showmainlogo) {
    <!-- Row 4 Column 3 -->          $r->print(' <img src="'.$logo.'" alt="" />'."\n");
 <td bgcolor="$mainbg">$announcements</td>      }
   $r->print(<<ENDTOP);
    <!-- Row 4 Column 4 -->  $announcements
    <td width=27 background="$iconpath/fillright.gif"><img src="$iconpath/fillright.gif" alt="" /></td>  $domainlogo
   </tr>  <div class="LC_loginpage_space">&nbsp;</div>
   <tr>  ENDTOP
   
    <!-- Row 5 Column 1 -->  $r->print(<<ENDDOCUMENT);
    <td bgcolor="$sidebg" valign="middle" align="left">       <table border="0" cellspacing="0" cellpadding="0">
      <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>&nbsp;&nbsp;&nbsp;$lt{'dom'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td  align="left" valign="top">
         <small><tt>&nbsp;$domain</tt></small>          <small><tt>&nbsp;$domain</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>&nbsp;&nbsp;&nbsp;$lt{'serv'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td align="left" valign="top">
         <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 align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'load'}:&nbsp;</b></small>          <small><b>&nbsp;&nbsp;&nbsp;$lt{'load'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td align="left" valign="top">
         <small><tt>&nbsp;$loadpercent $lt{'perc'}</tt></small>          <small><tt>&nbsp;$loadpercent $lt{'perc'}</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{'userload'}:&nbsp;</b></small>          <small><b>&nbsp;&nbsp;&nbsp;$lt{'userload'}:&nbsp;</b></small>
        </td>         </td>
        <td bgcolor="$sidebg" align="left" valign="top">         <td align="left" valign="top">
         <small><tt>&nbsp;$userloadpercent $lt{'perc'}</tt></small>          <small><tt>&nbsp;$userloadpercent $lt{'perc'}</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[
 // 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
   
 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,$version,$authdomain,$helpdeskscript) = @_;
     my $contactblock;      my $contactblock;
Line 632  sub contactdisplay { Line 544  sub contactdisplay {
                          '<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$servadm.'</tt><br />&nbsp;<br />';                           '<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$servadm.'</tt><br />&nbsp;<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">
   // <![CDATA[
 function helpdesk() {  function helpdesk() {
     var codedom = document.client.udom.value;      var codedom = document.client.udom.value;
     if (codedom == '') {      if (codedom == '') {
Line 645  function helpdesk() { Line 558  function helpdesk() {
     document.location.href = "/adm/helpdesk?"+querystr;      document.location.href = "/adm/helpdesk?"+querystr;
     return;      return;
 }  }
   // ]]>
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
     }      }
Line 658  sub forgotpwdisplay { Line 572  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 /><br />';          return '<a href="/adm/resetpw">'.$lt{'forgotpw'}.'</a>';
     }      }
     return;      return;
 }  }
Line 667  sub loginhelpdisplay { Line 581  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>';          return '<a href="/adm/loginproblems.html">'.$lt{'help'}.'</a>';
     }      }
     return;      return;
 }  }
Line 675  sub loginhelpdisplay { Line 589  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><a href="/adm/coursecatalog"><b>$linkname</b></a></td>  
      </tr>  
 END  END
 }  }
   
   sub newuser_link {
       my ($linkname) = @_;
       return '&nbsp;&nbsp;&nbsp;<a href="/adm/createaccount"><b>'.$linkname.'</b></a><br />';
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.98  
changed lines
  Added in v.1.129


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.