Diff for /loncom/auth/lonlogin.pm between versions 1.119 and 1.137

version 1.119, 2009/04/28 21:54:51 version 1.137, 2010/05/06 16:15:59
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 72  sub handler { Line 72  sub handler {
   
 # -------------------------------- 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 = 
  $r->print(          &Apache::loncommon::end_page();
               my $dest = '/adm/roles';
               if ($env{'form.firsturl'} ne '') {
                   $dest = $env{'form.firsturl'}; 
               }
       $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="/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>'  
                  .$end_page                   .$end_page
                  );                   );
         return OK;              return OK;
           }
     }      }
   
 # ---------------------------------------------------- No valid token, continue  # ---------------------------------------------------- No valid token, continue
Line 107  sub handler { Line 114  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 115  sub handler { Line 131  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 170  sub handler { Line 185  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 239  my $link=&Apache::loncommon::designparm( Line 264  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=&Apache::loncommon::domainlogo($domain);  my $domainlogo='<div>'.&Apache::loncommon::domainlogo($domain).'</div>';
 my $login=&Apache::loncommon::designparm('login.login',$domain);  my $login=&Apache::loncommon::designparm('login.login',$domain);
 if ($login eq '') {  if ($login eq '') {
 $login = $iconpath.'/'.&mt('userauthentication.gif');  $login = $iconpath.'/'.&mt('userauthentication.gif');
Line 264  my $now=time; Line 292  my $now=time;
 my $js = (<<ENDSCRIPT);  my $js = (<<ENDSCRIPT);
   
 <script type="text/javascript" language="JavaScript">  <script type="text/javascript" language="JavaScript">
   // <![CDATA[
 function send()  function send()
 {  {
 this.document.server.elements.uname.value  this.document.server.elements.uname.value
Line 289  this.document.client.elements.upass$now. Line 318  this.document.client.elements.upass$now.
 this.document.server.submit();  this.document.server.submit();
 return false;  return false;
 }  }
   // ]]>
 </script>  </script>
   
 ENDSCRIPT  ENDSCRIPT
Line 310  $r->print(&Apache::loncommon::start_page Line 340  $r->print(&Apache::loncommon::start_page
 # ----------------------------------------------------------------------- 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' => 'Server Load',            'load'     => 'Server Load',
   'userload' => 'User Load',            'userload' => 'User Load',
   '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',
   'servadm' => 'Server Administration',            'servadm'  => 'Server Administration',
   'helpdesk' => 'Contact Helpdesk',            'helpdesk' => 'Contact Helpdesk',
   'forgotpw' => 'Forgot password?',            'forgotpw' => 'Forgot password?',
   'newuser'  => 'New User?',            'newuser'  => 'New User?',
   );         );
 # -------------------------------------------------- Change password field name  # -------------------------------------------------- Change password field name
   
 my $forgotpw = &forgotpwdisplay(%lt);  my $forgotpw = &forgotpwdisplay(%lt);
 my $loginhelp = &loginhelpdisplay(%lt);  $forgotpw .= '<br />' if $forgotpw;
   my $loginhelp = &loginhelpdisplay($authdomain,%lt);
   $loginhelp .= '<br />' if $loginhelp;
   
 # ---------------------------------------------------- Serve out DES JavaScript  # ---------------------------------------------------- Serve out DES JavaScript
 {  {
Line 337  $r->print(<$jsh>); Line 370  $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?
   #  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">
Line 354  $r->print(<<ENDSERVERFORM); Line 394  $r->print(<<ENDSERVERFORM);
 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'}).'<br />';      $newuserlink = &newuser_link($lt{'newuser'}).'<br />';
 }  }
 my $logintitle;  my $logintitle =
       '<h2 class="LC_hcell"'
      .' style="background:'.$loginbox_header_bgcol.';'
      .' color:'.$loginbox_header_textcol.'">';
 if ($loginheader eq 'text') {  if ($loginheader eq 'text') {
     $logintitle ='<h2>'.$lt{'log'}.'</h2>';      $logintitle .= $lt{'log'};
 } else {  } else {
     $logintitle = '<img src="'.$login.'" alt="'.      $logintitle .= '<img src="'.$login.'"'.
                   &mt('User Authentication').'" />';                     ' alt="'.&mt('User Authentication').'" />';
 }  }
   $logintitle .= '</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.')
                     .'</b></span></noscript>';                      .'</b></span></noscript>';
 my $helpdeskscript;  my $helpdeskscript;
 my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,  my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,
                             $version,$authdomain,\$helpdeskscript);                                     $authdomain,\$helpdeskscript);
   
 my $loginform=(<<LFORM);  my $loginform=(<<LFORM);
 <form name="client" onsubmit="return(send())">  <form name="client" action="" onsubmit="return(send())">
   <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" size="15" value="$authusername" /><br />    <input type="text" name="uname" id="uname" size="15" value="$authusername" /><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" size="15" /><br />    <input type="password" name="upass$now" id="upass$now" size="15" /><br />
   <b><label for="udom">$lt{'dom'}</label>:</b><br />    <b><label for="udom">$lt{'dom'}</label>:</b><br />
   <input type="text" name="udom" size="15" value="$authdomain" /><br />    <input type="text" name="udom" id="udom" size="15" value="$authdomain" /><br />
   <input type="submit" value="$lt{'log'}" />    <input type="submit" value="$lt{'log'}" />
 </form>  </form>
 LFORM  LFORM
Line 392  LFORM Line 436  LFORM
     if ($showbanner) {      if ($showbanner) {
         $r->print(<<HEADER);          $r->print(<<HEADER);
 <!-- The LON-CAPA Header -->  <!-- The LON-CAPA Header -->
 <table border="0" align="left" width="100%" cellspacing="0" cellpadding="1">  <div style="background:$pgbg;margin:0;width:100%;">
  <tr>    <img src="$img" border="0" alt="The Learning Online Network with CAPA" />
   <td align="left" valign="top" bgcolor="$pgbg">  </div>
       <img src="$img" border="0" alt="The Learning Online Network with CAPA" />  
   </td>  
  </tr>  
 </table>  
 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<br />    $loginhelp
         $forgotpw<br />    $forgotpw
  $contactblock<br />    $contactblock
         $newuserlink    $newuserlink
         $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");
Line 431  ENDTOP Line 466  ENDTOP
 $r->print(<<ENDTOP);  $r->print(<<ENDTOP);
 $announcements  $announcements
 $domainlogo  $domainlogo
 <div class="LC_loginpage_space">&nbsp;</div>  </div>
   <hr style="clear:both;" />
 ENDTOP  ENDTOP
   
 $r->print(<<ENDDOCUMENT);  $r->print(<<ENDDOCUMENT);
      <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">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'dom'}:&nbsp;</b></small>          <small><b>$lt{'dom'}:&nbsp;</b></small>
        </td>         </td>
        <td  align="left" valign="top">         <td  align="left" valign="top">
         <small><tt>&nbsp;$domain</tt></small>          <small><tt>&nbsp;$domain</tt></small>
Line 446  $r->print(<<ENDDOCUMENT); Line 482  $r->print(<<ENDDOCUMENT);
       </tr>        </tr>
       <tr>        <tr>
        <td  align="left" valign="top">         <td  align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'serv'}:&nbsp;</b></small>          <small><b>$lt{'serv'}:&nbsp;</b></small>
        </td>         </td>
        <td align="left" valign="top">         <td align="left" valign="top">
         <small><tt>&nbsp;$lonhost ($role)</tt></small>          <small><tt>&nbsp;$lonhost ($role)</tt></small>
Line 454  $r->print(<<ENDDOCUMENT); Line 490  $r->print(<<ENDDOCUMENT);
       </tr>        </tr>
       <tr>        <tr>
        <td align="left" valign="top">         <td align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'load'}:&nbsp;</b></small>          <small><b>$lt{'load'}:&nbsp;</b></small>
        </td>         </td>
        <td 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>
Line 462  $r->print(<<ENDDOCUMENT); Line 498  $r->print(<<ENDDOCUMENT);
       </tr>        </tr>
       <tr>        <tr>
        <td align="left" valign="top">         <td align="left" valign="top">
         <small><b>&nbsp;&nbsp;&nbsp;$lt{'userload'}:&nbsp;</b></small>          <small><b>$lt{'userload'}:&nbsp;</b></small>
        </td>         </td>
        <td 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>
         <tr>
          <td colspan="2" align="left">
           <small>$version</small>
          </td>
         </tr>
      </table>       </table>
  </div>   </div>
   
 <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 483  ENDDOCUMENT Line 526  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,$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 492  sub contactdisplay { Line 591  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 .= '<a href="javascript:helpdesk()">'.$lt->{'helpdesk'}.'</a><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 509  function helpdesk() { Line 609  function helpdesk() {
     document.location.href = "/adm/helpdesk?"+querystr;      document.location.href = "/adm/helpdesk?"+querystr;
     return;      return;
 }  }
   // ]]>
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
     }      }
     $contactblock .= <<"ENDBLOCK";  
      &nbsp;&nbsp;&nbsp;$version  
 ENDBLOCK  
     return $contactblock;      return $contactblock;
 }  }
   
Line 528  sub forgotpwdisplay { Line 626  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) {
         return '<a href="/adm/loginproblems.html">'.$lt{'help'}.'</a>';          my $dom = $authdomain;
           if ($dom eq '') {
               $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 545  END Line 653  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.119  
changed lines
  Added in v.1.137


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.