Diff for /loncom/interface/createaccount.pm between versions 1.22 and 1.33

version 1.22, 2008/07/17 12:10:05 version 1.33, 2009/04/01 14:43:06
Line 58  sub handler { Line 58  sub handler {
     my $sso_username = $r->subprocess_env->get('REDIRECT_SSOUserUnknown');      my $sso_username = $r->subprocess_env->get('REDIRECT_SSOUserUnknown');
     my $sso_domain = $r->subprocess_env->get('REDIRECT_SSOUserDomain');      my $sso_domain = $r->subprocess_env->get('REDIRECT_SSOUserDomain');
   
       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token','courseid']);
       &Apache::lonacc::get_posted_cgi($r);
       &Apache::lonlocal::get_language_handle($r);
   
     if ($sso_username ne '' && $sso_domain ne '') {      if ($sso_username ne '' && $sso_domain ne '') {
         $domain = $sso_domain;           $domain = $sso_domain; 
     } else {       } else {
         $domain = &Apache::lonnet::default_login_domain();          $domain = &Apache::lonnet::default_login_domain();
           if (defined($env{'form.courseid'})) {
               if (&validate_course($env{'form.courseid'})) {
                   if ($env{'form.courseid'} =~ /^($match_domain)_($match_courseid)$/) {
                       $domain = $1; 
                   }
               }
           }
     }      }
     my $domdesc = &Apache::lonnet::domain($domain,'description');      my $domdesc = &Apache::lonnet::domain($domain,'description');
     my $contact_name = &mt('LON-CAPA helpdesk');      my $contact_name = &mt('LON-CAPA helpdesk');
Line 74  sub handler { Line 85  sub handler {
     my $include = $r->dir_config('lonIncludes');      my $include = $r->dir_config('lonIncludes');
     my $start_page;      my $start_page;
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token','courseid']);  
     &Apache::lonacc::get_posted_cgi($r);  
     &Apache::lonlocal::get_language_handle($r);  
   
     my $handle = &Apache::lonnet::check_for_valid_session($r);      my $handle = &Apache::lonnet::check_for_valid_session($r);
     if ($handle ne '') {      if (($handle ne '') && ($handle !~ /^publicuser_\d+$/)) {
         $start_page =          $start_page =
             &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($start_page."\n".'<h2>'.&mt('You are already logged in').'</h2>'.          $r->print($start_page."\n".'<h2>'.&mt('You are already logged in').'</h2>'.
                   '<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]logout[_4].','<a href="/adm/roles">','</a>','<a href="/adm/logout">','</a>').                    '<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><p><a href="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'.$end_page);                    '</p><p><a href="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'.$end_page);
         return OK;          return OK;
     }      }
Line 263  sub print_footer { Line 270  sub print_footer {
                   &Apache::lonhtmlcommon::echo_form_input(['backto','logtoken',                    &Apache::lonhtmlcommon::echo_form_input(['backto','logtoken',
                       'token','serverid','uname','upass','phase','create_with_email',                        'token','serverid','uname','upass','phase','create_with_email',
                       'code','useremail','crypt','cfirstname','clastname',                        'code','useremail','crypt','cfirstname','clastname',
                       'cmiddlename','cgeneration','cpermanentemail','cid]).                        'cmiddlename','cgeneration','cpermanentemail','cid']).
                   '</form>');                    '</form>');
     }      }
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
Line 306  sub validate_course { Line 313  sub validate_course {
 sub javascript_setforms {  sub javascript_setforms {
     my ($now) =  @_;      my ($now) =  @_;
     my $js = <<ENDSCRIPT;      my $js = <<ENDSCRIPT;
  <script language="JavaScript">   <script type="text/javascript" language="JavaScript">
     function send() {      function send() {
         this.document.server.elements.uname.value = this.document.client.elements.uname.value;          this.document.server.elements.uname.value = 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;          uextkey=this.document.client.elements.uextkey.value;
         lextkey=this.document.client.elements.lextkey.value;          lextkey=this.document.client.elements.lextkey.value;
         initkeys();          initkeys();
Line 339  sub javascript_checkpass { Line 347  sub javascript_checkpass {
         var upasscheck = this.document.client.elements.upasscheck$now.value;          var upasscheck = this.document.client.elements.upasscheck$now.value;
         if (upass == '') {          if (upass == '') {
             alert("$nopass");              alert("$nopass");
             return;              return false;
         }          }
         if (upass == upasscheck) {          if (upass == upasscheck) {
             this.document.client.elements.upasscheck$now.value='';              this.document.client.elements.upasscheck$now.value='';
             send();              send();
             return;              return false;
         } else {          } else {
             alert("$mismatchpass");              alert("$mismatchpass");
             return;              return false;
         }           }
     }      }
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
Line 381  sub print_username_form { Line 389  sub print_username_form {
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash(
                                          unam => 'username',                                           unam => 'username',
                                          udom => 'domain',                                           udom => 'domain',
                                          uemail => 'Email address in LON-CAPA',                                           uemail => 'E-mail address in LON-CAPA',
                                          proc => 'Proceed');                                           proc => 'Proceed');
     my $output;      my $output;
     if (ref($cancreate) eq 'ARRAY') {      if (ref($cancreate) eq 'ARRAY') {
Line 397  sub print_username_form { Line 405  sub print_username_form {
         }          }
         if (grep(/^email$/,@{$cancreate})) {          if (grep(/^email$/,@{$cancreate})) {
             $output .= '<div class="LC_left_float"><h3>'.&mt('Create account with an e-mail address as your username').'</h3>';              $output .= '<div class="LC_left_float"><h3>'.&mt('Create account with an e-mail address as your username').'</h3>';
             if (grep(/^login$/,@{$cancreate})) {  
                 $output .= &mt('Provide your e-mail address to request a LON-CAPA account,[_1] if you do not have a log-in ID at your institution.','<br />').'<br /><br />';  
             } else {  
                 $output .= '<br />';  
             }  
             my $emailform = '<input type="text" name="useremail" size="25" value="" />';  
             my $captchaform = &create_captcha();              my $captchaform = &create_captcha();
             my $submit_text = &mt('Request LON-CAPA account');              if ($captchaform) {
             $output .=  '<form name="createaccount" method="post" onSubmit="return validate_email()" action="/adm/createaccount">'.                  my $submit_text = &mt('Request LON-CAPA account');
                         &Apache::lonhtmlcommon::start_pick_box()."\n".                  my $emailform = '<input type="text" name="useremail" size="25" value="" />';
                         &Apache::lonhtmlcommon::row_title(&mt('E-mail address'),                  if (grep(/^login$/,@{$cancreate})) {
                                                          'LC_pick_box_title')."\n".                      $output .= &mt('Provide your e-mail address to request a LON-CAPA account,[_1] if you do not have a log-in ID at your institution.','<br />').'<br /><br />';
                         $emailform."\n".                  } else {
                         &Apache::lonhtmlcommon::row_closure(1).                      $output .= '<br />';
                         &Apache::lonhtmlcommon::row_title(&mt('Validation'),                  }
                                                          'LC_pick_box_title')."\n".                  $output .=  '<form name="createaccount" method="post" onSubmit="return validate_email()" action="/adm/createaccount">'.
                         $captchaform."\n".'<br /><br />';                              &Apache::lonhtmlcommon::start_pick_box()."\n".
             if ($courseid ne '') {                              &Apache::lonhtmlcommon::row_title(&mt('E-mail address'),
                 $output .= '<input type="hidden" name="courseid" value="'.$courseid.'"/>'."\n";                                                                'LC_pick_box_title')."\n".
             }                              $emailform."\n".
             $output .= '<input type="submit" name="create_with_email" value="'.                               &Apache::lonhtmlcommon::row_closure(1).
                         $submit_text.'" />'.                              &Apache::lonhtmlcommon::row_title(&mt('Validation'),
                         &Apache::lonhtmlcommon::row_closure(1).                                                               'LC_pick_box_title')."\n".
                         &Apache::lonhtmlcommon::end_pick_box().'<br /><br />';                              $captchaform."\n".'<br /><br />';
             if ($courseid ne '') {                  if ($courseid ne '') {
                 $output .= &Apache::lonhtmlcommon::echo_form_input(['courseid']);                      $output .= '<input type="hidden" name="courseid" value="'.$courseid.'"/>'."\n"; 
                   }
                   $output .=  &Apache::lonhtmlcommon::row_closure(1).
                               &Apache::lonhtmlcommon::row_title().'<br />'.
                               '<input type="submit" name="create_with_email" value="'. 
                               $submit_text.'" />'.
                               &Apache::lonhtmlcommon::row_closure(1).
                               &Apache::lonhtmlcommon::end_pick_box().'<br /><br />';
                   if ($courseid ne '') {
                       $output .= &Apache::lonhtmlcommon::echo_form_input(['courseid']);
                   }
                   $output .= '</form>';
               } else {
                   my $helpdesk = '/adm/helpdesk?origurl=%2fadm%2fcreateaccount';
                   if ($courseid ne '') {
                       $helpdesk .= '&courseid='.$courseid;
                   }
                   $output .= '<span class="LC_error">'.&mt('An error occurred generating the validation code[_1] required for an e-mail address to be used as username.','<br />').'</span><br /><br />'.&mt('[_1]Contact the helpdesk[_2] or [_3]reload[_2] the page and try again.','<a href="'.$helpdesk.'">','</a>','<a href="javascript:window.location.reload()">');
             }              }
             $output .= '</form></div>';              $output .= '</div>';
         }          }
     }      }
     if ($output eq '') {      if ($output eq '') {
Line 447  sub login_box { Line 466  sub login_box {
     my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount',      my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount',
                                        $lonhost);                                         $lonhost);
     $output = &serverform($logtoken,$lonhost,undef,$courseid,$context);      $output = &serverform($logtoken,$lonhost,undef,$courseid,$context);
     my $unameform = '<input type="text" name="uname" size="10" value="" />';      my $unameform = '<input type="text" name="uname" size="20" value="" />';
     my $upassform = '<input type="password" name="upass'.$now.'" size="10" />';      my $upassform = '<input type="password" name="upass'.$now.'" size="20" />';
     $output .= '<form name="client" method="post" action="/adm/createaccount">'."\n".      $output .= '<form name="client" method="post" onsubmit="return(send());">'."\n".
                &Apache::lonhtmlcommon::start_pick_box()."\n";                 &Apache::lonhtmlcommon::start_pick_box()."\n".
     if ($context eq 'selfenroll') {                 &Apache::lonhtmlcommon::row_title($titles{$context},
         my $udomform =  '<input type="text" name="udom" size="10" value="'.  
                         $domain.'" />';  
         $output .= &Apache::lonhtmlcommon::row_title(&mt('Domain'),  
                                                      'LC_pick_box_title')."\n".  
                    $udomform."\n".  
                    &Apache::lonhtmlcommon::row_closure(1)."\n";  
     }  
   
     $output .= &Apache::lonhtmlcommon::row_title($titles{$context},  
                                                  'LC_pick_box_title')."\n".                                                   'LC_pick_box_title')."\n".
                $unameform."\n".                 $unameform."\n".
                &Apache::lonhtmlcommon::row_closure(1)."\n".                 &Apache::lonhtmlcommon::row_closure(1)."\n".
                &Apache::lonhtmlcommon::row_title(&mt('Password'),                 &Apache::lonhtmlcommon::row_title(&mt('Password'),
                                                 'LC_pick_box_title')."\n".                                                  'LC_pick_box_title')."\n".
                $upassform."\n".'<br /><br />'."\n".                 $upassform;
                '<input type="button" name="username_validation" value="'.      if ($context eq 'selfenroll') {
                $submit_text.'" onclick="javascript:send()" />'."\n".          my $udomform = '<input type="text" name="udom" size="10" value="'.
                &Apache::lonhtmlcommon::row_closure(1)."\n".                          $domain.'" />';
                &Apache::lonhtmlcommon::end_pick_box().'<br /><br />'."\n".          $output .= &Apache::lonhtmlcommon::row_closure(1)."\n".
                '<input type="hidden" name="lextkey" value="'.$lextkey.'">'."\n".                     &Apache::lonhtmlcommon::row_title(&mt('Domain'),
                                                        'LC_pick_box_title')."\n".
                      $udomform."\n";
       } else {
           $output .= '<input type="hidden" name="udom" value="'.$domain.'" />';
       }
       $output .= &Apache::lonhtmlcommon::row_closure(1).
                  &Apache::lonhtmlcommon::row_title().
                  '<br /><input type="submit" name="username_validation" value="'.
                  $submit_text.'" />'."\n";
       if ($context eq 'selfenroll') {
           $output .= '<br /><br /><table width="100%"><tr><td align="right">'.
                      '<span class="LC_fontsize_medium">'.
                      '<a href="/adm/resetpw">'.&mt('Forgot password?').'</a>'.
                      '</span></td></tr></table>'."\n";
       }
       $output .= &Apache::lonhtmlcommon::row_closure(1)."\n".
                  &Apache::lonhtmlcommon::end_pick_box().'<br />'."\n";
       $output .= '<input type="hidden" name="lextkey" value="'.$lextkey.'">'."\n".
                '<input type="hidden" name="uextkey" value="'.$uextkey.'">'."\n".                 '<input type="hidden" name="uextkey" value="'.$uextkey.'">'."\n".
                '</form>';                 '</form>';
     return $output;      return $output;
Line 517  sub process_email_request { Line 545  sub process_email_request {
                                              $contact_email,$captcha_hash{$captcha_chk});                                               $contact_email,$captcha_hash{$captcha_chk});
                     return $output;                      return $output;
                 }                  }
                 my (%rulematch,%inst_results,%curr_rules,%got_rules,%alerts);  
                 my $uhome=&Apache::lonnet::homeserver($useremail,$domain);                  my $uhome=&Apache::lonnet::homeserver($useremail,$domain);
                 if ($uhome eq 'no_host') {                  if ($uhome eq 'no_host') {
                     my $checkhash;                      my (%rulematch,%inst_results,%curr_rules,%got_rules,%alerts);
                     my $checks = { 'username' => 1 };                      &call_rulecheck($useremail,$domain,\%alerts,\%rulematch,
                     $checkhash->{$useremail.':'.$domain} = { 'newuser' => 1, };                                      \%inst_results,\%curr_rules,%got_rules,'username');
                     &Apache::loncommon::user_rule_check($checkhash,$checks,                      if (ref($alerts{'username'}) eq 'HASH') {
                           \%alerts,\%rulematch,\%inst_results,\%curr_rules,                          if (ref($alerts{'username'}{$domain}) eq 'HASH') {
                           \%got_rules);  
                     if (ref($alerts{'useremail'}) eq 'HASH') {  
                         if (ref($alerts{'useremail'}{$domain}) eq 'HASH') {  
                             if ($alerts{'username'}{$domain}{$useremail}) {                              if ($alerts{'username'}{$domain}{$useremail}) {
                                 $output = &invalid_state('userrules',$domdesc,                                  $output = &invalid_state('userrules',$domdesc,
                                                          $contact_name,$contact_email);                                                           $contact_name,$contact_email);
Line 552  sub process_email_request { Line 576  sub process_email_request {
     return $output;      return $output;
 }  }
   
   sub call_rulecheck {
       my ($uname,$udom,$alerts,$rulematch,$inst_results,$curr_rules,
           $got_rules,$tocheck) = @_;
       my ($checkhash,$checks);
       $checkhash->{$uname.':'.$udom} = { 'newuser' => 1, };
       if ($tocheck eq 'username') {
           $checks = { 'username' => 1 };
       }
       &Apache::loncommon::user_rule_check($checkhash,$checks,
              $alerts,$rulematch,$inst_results,$curr_rules,
              $got_rules);
       return;
   }
   
 sub send_token {  sub send_token {
     my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid) = @_;      my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid) = @_;
     my $msg = '<h3>'.&mt('Account creation status').'</h3>'.      my $msg = '<h3>'.&mt('Account creation status').'</h3>'.
Line 566  sub send_token { Line 604  sub send_token {
     my $token = &Apache::lonnet::tmpput(\%info,$server);      my $token = &Apache::lonnet::tmpput(\%info,$server);
     if ($token !~ /^error/ && $token ne 'no_such_host') {      if ($token !~ /^error/ && $token ne 'no_such_host') {
         my $esc_token = &escape($token);          my $esc_token = &escape($token);
         my $mailmsg = &mt('A request was submitted on [_1] for creation of a LON-CAPA account at the following institution: [_2].',localtime(time),$domdesc).' '.          my $showtime = localtime(time);
              &mt('To complete this process please open a web browser and enter the following'          my $mailmsg = &mt('A request was submitted on [_1] for creation of a LON-CAPA account at the following institution: [_2].',$showtime,$domdesc).' '.
                 .' URL in the address/location box: [_1]'               &mt('To complete this process please open a web browser and enter the following URL in the address/location box: [_1]',
                 ,&Apache::lonnet::absolute_url().'/adm/createaccount?token='.$esc_token);                   &Apache::lonnet::absolute_url().'/adm/createaccount?token='.$esc_token);
         my $result = &Apache::resetpw::send_mail($domdesc,$email,$mailmsg,$contact_name,          my $result = &Apache::resetpw::send_mail($domdesc,$email,$mailmsg,$contact_name,
                                                  $contact_email);                                                   $contact_email);
         if ($result eq 'ok') {          if ($result eq 'ok') {
Line 689  sub print_dataentry_form { Line 727  sub print_dataentry_form {
         my ($lextkey,$uextkey) = &getkeys($lkey,$ukey);          my ($lextkey,$uextkey) = &getkeys($lkey,$ukey);
         my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount',          my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount',
                                            $lonhost);                                             $lonhost);
         my @userinfo = ('firstname','middlename','lastname','generation','id',          my $formtag = '<form name="server" method="post" target="_top" action="/adm/createaccount">';
                         'permanentemail');          my ($datatable,$rowcount) =
         my %lt=&Apache::lonlocal::texthash(              &Apache::loncreateuser::personal_data_display($username,$domain,
                     'pd'             => "Personal Data",                                                            'email','selfcreate');
                     'firstname'      => "First Name",          if ($rowcount) {
                     'middlename'     => "Middle Name",              $output .= '<div class="LC_left_float">'.$formtag.$datatable;
                     'lastname'       => "Last Name",          } else {
                     'generation'     => "Generation",              $output .= $formtag;
                     'permanentemail' => "Permanent e-mail address",  
                     'id'             => "ID/Student Number",  
                     'lg'             => "Login Data"  
         );  
         my %textboxsize = (  
                            firstname      => '15',  
                            middlename     => '15',  
                            lastname       => '15',  
                            generation     => '5',  
                            id             => '15',  
                           );  
         my $genhelp=&Apache::loncommon::help_open_topic('Generation');  
         $output .= '<div class="LC_left_float"><h3>'.$lt{'pd'}.'</h3>'.  
                   '<form name="server" method="post" target="_top" action="/adm/createaccount">'.  
                   &Apache::lonhtmlcommon::start_pick_box();  
         foreach my $item (@userinfo) {  
             my $rowtitle = $lt{$item};  
             if ($item eq 'generation') {  
                 $rowtitle = $genhelp.$rowtitle;  
             }  
             $output .= &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n";  
             if ($item eq 'permanentemail') {  
                 $output .= $username;  
             } else {  
                 $output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />';  
             }  
             $output .= &Apache::lonhtmlcommon::row_closure(1);  
         }          }
         $output .= &Apache::lonhtmlcommon::end_pick_box();  
         $output .= <<"ENDSERVERFORM";          $output .= <<"ENDSERVERFORM";
    <input type="hidden" name="logtoken" value="$logtoken" />     <input type="hidden" name="logtoken" value="$logtoken" />
    <input type="hidden" name="token" value="$mailtoken" />     <input type="hidden" name="token" value="$mailtoken" />
    <input type="hidden" name="serverid" value="$lonhost" />     <input type="hidden" name="serverid" value="$lonhost" />
    <input type="hidden" name="uname" value="" />     <input type="hidden" name="uname" value="" />
    <input type="hidden" name="upass" value="" />     <input type="hidden" name="upass" value="" />
      <input type="hidden" name="udom" value="" />
    <input type="hidden" name="phase" value="createaccount" />     <input type="hidden" name="phase" value="createaccount" />
   </form></div>    </form>
 ENDSERVERFORM  ENDSERVERFORM
           if ($rowcount) {
               $output .= '</div>'.
                          '<div class="LC_left_float">';
           }
         my $upassone = '<input type="password" name="upass'.$now.'" size="10" />';          my $upassone = '<input type="password" name="upass'.$now.'" size="10" />';
         my $upasstwo = '<input type="password" name="upasscheck'.$now.'" size="10" />';          my $upasstwo = '<input type="password" name="upasscheck'.$now.'" size="10" />';
         my $submit_text = &mt('Create LON-CAPA account');          my $submit_text = &mt('Create LON-CAPA account');
         $output .= '<div class="LC_left_float"><h3>'.$lt{'lg'}.'</h3>'."\n".          $output .= '<h3>'.&mt('Login Data').'</h3>'."\n".
                    '<form name="client" method="post" />'."\n".                     '<form name="client" method="post" '.
                      'onsubmit="return checkpass();">'."\n".
                    &Apache::lonhtmlcommon::start_pick_box()."\n".                     &Apache::lonhtmlcommon::start_pick_box()."\n".
                    &Apache::lonhtmlcommon::row_title(&mt('Username'),                     &Apache::lonhtmlcommon::row_title(&mt('Username'),
                                                     'LC_pick_box_title')."\n".                                                       'LC_pick_box_title',
                                                        'LC_oddrow_value')."\n".
                    $username."\n".                     $username."\n".
                    &Apache::lonhtmlcommon::row_closure(1)."\n".                     &Apache::lonhtmlcommon::row_closure(1)."\n".
                    &Apache::lonhtmlcommon::row_title(&mt('Password'),                     &Apache::lonhtmlcommon::row_title(&mt('Password'),
                                                     'LC_pick_box_title')."\n".                                                      'LC_pick_box_title',
                                                       'LC_oddrow_value')."\n".
                    $upassone."\n".                     $upassone."\n".
                    &Apache::lonhtmlcommon::row_closure(1)."\n".                     &Apache::lonhtmlcommon::row_closure(1)."\n".
                    &Apache::lonhtmlcommon::row_title(&mt('Confirm password'),                     &Apache::lonhtmlcommon::row_title(&mt('Confirm password'),
                                                 'LC_pick_box_title')."\n".                                                       'LC_pick_box_title',
                    $upasstwo."\n".                                                       'LC_oddrow_value')."\n".
                      $upasstwo.
                      &Apache::lonhtmlcommon::row_closure(1)."\n".
                      &Apache::lonhtmlcommon::row_title()."\n".
                      '<br /><input type="submit" name="createaccount" value="'.
                      $submit_text.'" />'.
                    &Apache::lonhtmlcommon::row_closure(1)."\n".                     &Apache::lonhtmlcommon::row_closure(1)."\n".
                    &Apache::lonhtmlcommon::end_pick_box()."\n".                     &Apache::lonhtmlcommon::end_pick_box()."\n".
                    '<input type="hidden" name="uname" value="'.$username.'">'."\n".                     '<input type="hidden" name="uname" value="'.$username.'" />'."\n".
                    '<input type="hidden" name="lextkey" value="'.$lextkey.'">'."\n".                     '<input type="hidden" name="udom" value="'.$domain.'" />'."\n".
                    '<input type="hidden" name="uextkey" value="'.$uextkey.'">'."\n".                     '<input type="hidden" name="lextkey" value="'.$lextkey.'" />'."\n".
                    '</form></div>'."\n".                     '<input type="hidden" name="uextkey" value="'.$uextkey.'" />'."\n".
                    '<div class="LC_clear_float_footer"><br /><br />'."\n".                     '</form>';
                    '<form name="buttonform">'."\n".          if ($rowcount) {
                    '<input type="button" name="createaccount" value="'.              $output .= '</div>'."\n".
                    $submit_text.'" onclick="javascript:checkpass();" /></form></div>';                         '<div class="LC_clear_float_footer"></div>'."\n";
           }
     } else {      } else {
         $output = &mt('Could not load javascript file [_1]','<tt>londes.js</tt>');          $output = &mt('Could not load javascript file [_1]','<tt>londes.js</tt>');
     }      }
Line 866  sub login_failure_msg { Line 890  sub login_failure_msg {
 sub username_check {  sub username_check {
     my ($username,$domain,$domdesc,$courseid,$lonhost,$contact_email,$contact_name,      my ($username,$domain,$domdesc,$courseid,$lonhost,$contact_email,$contact_name,
         $sso_logout) = @_;          $sso_logout) = @_;
     my (%rulematch,%inst_results,$newuser,$checkfail,$rowcount,$editable,$output,$msg,      my (%rulematch,%inst_results,$checkfail,$rowcount,$editable,$output,$msg,
         %alerts,%curr_rules,%got_rules);          %alerts,%curr_rules,%got_rules);
     $newuser = 1;      &call_rulecheck($username,$domain,\%alerts,\%rulematch,
     my $checkhash;                      \%inst_results,\%curr_rules,%got_rules,'username');
     my $checks = { 'username' => 1 };  
     $checkhash->{$username.':'.$domain} = { 'newuser' => $newuser };  
     &Apache::loncommon::user_rule_check($checkhash,$checks,\%alerts,\%rulematch,  
                                         \%inst_results,\%curr_rules,\%got_rules);  
     if (ref($alerts{'username'}) eq 'HASH') {      if (ref($alerts{'username'}) eq 'HASH') {
         if (ref($alerts{'username'}{$domain}) eq 'HASH') {          if (ref($alerts{'username'}{$domain}) eq 'HASH') {
             if ($alerts{'username'}{$domain}{$username}) {              if ($alerts{'username'}{$domain}{$username}) {
Line 999  sub username_activation { Line 1019  sub username_activation {
             }              }
         }          }
         # Call modifyuser          # Call modifyuser
           my (%rulematch,%inst_results,%curr_rules,%got_rules,%alerts,%info);
           &call_rulecheck($username,$domain,\%alerts,\%rulematch,
                           \%inst_results,\%curr_rules,%got_rules);
           my @userinfo = ('firstname','middlename','lastname','generation',
                           'permanentemail','id');
           my %canmodify = 
               &Apache::loncreateuser::selfcreate_canmodify('selfcreate',$domain,
                                                            \@userinfo,\%inst_results);
           foreach my $item (@userinfo) {
               if ($canmodify{$item}) {
                   $info{$item} = $env{'form.c'.$item};
               } else {
                   $info{$item} = $inst_results{$username.':'.$domain}{$item}; 
               }
           }
           if (ref($inst_results{$username.':'.$domain}{'inststatus'}) eq 'ARRAY') {
               my @inststatuses = @{$inst_results{$username.':'.$domain}{'inststatus'}};
               $info{'inststatus'} = join(':',map { &escape($_); } @inststatuses);
           }
         my $result =          my $result =
             &Apache::lonnet::modifyuser($domain,$username,$env{'form.courseid'},              &Apache::lonnet::modifyuser($domain,$username,$env{'form.cid'},
                           $domdefaults{'auth_def'},                            $domdefaults{'auth_def'},
                           $domdefaults{'auth_arg_def'},$env{'form.cfirstname'},                            $domdefaults{'auth_arg_def'},$info{'firstname'},
                           $env{'form.cmiddlename'},$env{'form.clastname'},                            $info{'middlename'},$info{'lastname'},
                           $env{'form.cgeneration'},undef,undef,                            $info{'generation'},undef,undef,
                           $env{'form.cpermanentemail'});                            $info{'permanentemail'},$info{'inststatus'});
         if ($result eq 'ok') {          if ($result eq 'ok') {
             my $delete = &Apache::lonnet::tmpdel($env{'form.authtoken'});              my $delete = &Apache::lonnet::tmpdel($env{'form.authtoken'});
             $output = &mt('A LON-CAPA account has been created for username: [_1] in domain: [_2].',$username,$domain);              $output = &mt('A LON-CAPA account has been created for username: [_1] in domain: [_2].',$username,$domain);
Line 1059  sub invalid_state { Line 1098  sub invalid_state {
     } elsif ($error eq 'existinguser') {      } elsif ($error eq 'existinguser') {
         $msg = &mt('The e-mail address you provided is already in use as a username in LON-CAPA at this institution.');          $msg = &mt('The e-mail address you provided is already in use as a username in LON-CAPA at this institution.');
     } elsif ($error eq 'userrules') {      } elsif ($error eq 'userrules') {
         $msg = &mt('Username rules for this LON-CAPA at this institution do not allow the e-mail address you provided to be used as a username.');          $msg = &mt('Username rules at this institution do not allow the e-mail address you provided to be used as a username.');
     } elsif ($error eq 'userformat') {      } elsif ($error eq 'userformat') {
         $msg = &mt('The e-mail address you provided may not be used as a username at this LON-CAPA institution.');          $msg = &mt('The e-mail address you provided may not be used as a username at this LON-CAPA institution.');
     } elsif ($error eq 'captcha') {      } elsif ($error eq 'captcha') {
Line 1090  sub linkto_email_help { Line 1129  sub linkto_email_help {
 sub create_captcha {  sub create_captcha {
     my ($output_dir,$db_dir) = @_;      my ($output_dir,$db_dir) = @_;
     my %captcha_params = &captcha_settings();      my %captcha_params = &captcha_settings();
     my $captcha = Authen::Captcha->new(      my ($output,$maxtries,$tries) = ('',10,0);
                                        output_folder => $captcha_params{'output_dir'},      while ($tries < $maxtries) {
                                        data_folder   => $captcha_params{'db_dir'},          $tries ++;
                                       );          my $captcha = Authen::Captcha->new (
     my $md5sum = $captcha->generate_code($captcha_params{'numchars'});                                             output_folder => $captcha_params{'output_dir'},
     my $output = '<input type="hidden" name="crypt" value="'.$md5sum.'" />'."\n".                                             data_folder   => $captcha_params{'db_dir'},
                  &mt('Type in the letters/numbers shown below').'&nbsp;'.                                            );
                  '<input type="text" size="5" name="code" value="" /><br />'.          my $md5sum = $captcha->generate_code($captcha_params{'numchars'});
                  '<img src="'.$captcha_params{'www_output_dir'}.'/'.$md5sum.'.png">';  
           if (-e $Apache::lonnet::perlvar{'lonCaptchaDir'}.'/'.$md5sum.'.png') {
               $output = '<input type="hidden" name="crypt" value="'.$md5sum.'" />'."\n".
                         &mt('Type in the letters/numbers shown below').'&nbsp;'.
                        '<input type="text" size="5" name="code" value="" /><br />'.
                        '<img src="'.$captcha_params{'www_output_dir'}.'/'.$md5sum.'.png">';
               last;
           }
       }
     return $output;      return $output;
 }  }
   
Line 1139  sub serverform { Line 1186  sub serverform {
    <input type="hidden" name="serverid" value="$lonhost" />     <input type="hidden" name="serverid" value="$lonhost" />
    <input type="hidden" name="uname" value="" />     <input type="hidden" name="uname" value="" />
    <input type="hidden" name="upass" value="" />     <input type="hidden" name="upass" value="" />
      <input type="hidden" name="udom" value="" />
    <input type="hidden" name="phase" value="$phase" />     <input type="hidden" name="phase" value="$phase" />
    <input type="hidden" name="courseid" value="$courseid" />     <input type="hidden" name="courseid" value="$courseid" />
    $catalog_elements     $catalog_elements

Removed from v.1.22  
changed lines
  Added in v.1.33


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.