Diff for /loncom/interface/createaccount.pm between versions 1.40.2.5.2.2 and 1.40.2.5.2.9

version 1.40.2.5.2.2, 2012/02/08 19:08:41 version 1.40.2.5.2.9, 2012/02/14 16:04:22
Line 57  sub handler { Line 57  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');
       my $privkey = $r->dir_config('reCAPTCHA_PRIVATE');
       my $pubkey  = $r->dir_config('reCAPTCHA_PUBLIC');
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token','courseid']);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token','courseid']);
     &Apache::lonacc::get_posted_cgi($r);      &Apache::lonacc::get_posted_cgi($r);
Line 225  sub handler { Line 227  sub handler {
         $output = &process_email_request($env{'form.useremail'},$domain,$domdesc,          $output = &process_email_request($env{'form.useremail'},$domain,$domdesc,
                                          $contact_name,$contact_email,$cancreate,                                           $contact_name,$contact_email,$cancreate,
                                          $lonhost,$domconfig{'usercreation'},                                           $lonhost,$domconfig{'usercreation'},
                                          $courseid);                                           $courseid,$privkey);
     } elsif (!$token) {      } elsif (!$token) {
         &print_header($r,$start_page,$courseid);          &print_header($r,$start_page,$courseid);
         my $now=time;          my $now=time;
Line 238  sub handler { Line 240  sub handler {
             $r->print(&javascript_validmail());              $r->print(&javascript_validmail());
         }          }
         $output = &print_username_form($domain,$domdesc,$cancreate,$now,$lonhost,          $output = &print_username_form($domain,$domdesc,$cancreate,$now,$lonhost,
                                        $courseid);                                         $courseid,$pubkey);
     }      }
     $r->print($output);      $r->print($output);
     &print_footer($r);      &print_footer($r);
Line 248  sub handler { Line 250  sub handler {
 sub get_custom_name {  sub get_custom_name {
     my ($domain) = @_;      my ($domain) = @_;
     if ($domain eq 'relate') {      if ($domain eq 'relate') {
         return 'Learn-Physics';          return 'Mechanics Online';
     } else {      } else {
         return lc($domain);          return lc($domain);
     }      }
Line 387  function validate_email() { Line 389  function validate_email() {
        var lcemail = emailaddr.toLowerCase();         var lcemail = emailaddr.toLowerCase();
        if (emailaddr != lcemail) {         if (emailaddr != lcemail) {
            field.value = lcemail;             field.value = lcemail;
            alert("Learn-Physics usernames are all lower case.\\nAccordingly your username will be "+lcemail+" once activated.");             alert("Mechanics Online usernames are all lower case.\\nAccordingly your username will be "+lcemail+" once activated.");
        }         }
     }      }
     return true;      return true;
Line 398  ENDSCRIPT Line 400  ENDSCRIPT
 }  }
   
 sub print_username_form {  sub print_username_form {
     my ($domain,$domdesc,$cancreate,$now,$lonhost,$courseid) = @_;      my ($domain,$domdesc,$cancreate,$now,$lonhost,$courseid,$pubkey) = @_;
     my %lt = &Apache::lonlocal::texthash(      my %lt = &Apache::lonlocal::texthash (
                                          unam => 'username',          unam   => 'username',
                                          udom => 'domain',          udom   => 'domain',
                                          uemail => 'E-mail address in LON-CAPA',          uemail => 'E-mail address in LON-CAPA',
                                          proc => 'Proceed');          proc   => 'Proceed',
           crea   => 'Create account with a username provided by this institution',
           crlc   => 'Create LON-CAPA account',
           type   => 'Type in your log-in ID and password to find out.',
           plse   => 'Please enter a valid e-mail address below.',
           inst   => 'Instructions on how to activate your account will be sent to the e-mail address you provide.',
           aftr   => 'After completing the activation process you will have access to a "self test" that will help you assess your readiness for the course.',
           thes   => 'The same account will be used for access to the Mechanics Online course, once it becomes available on March 1, 2012.',
       );
     my $output;      my $output;
     if (ref($cancreate) eq 'ARRAY') {      if (ref($cancreate) eq 'ARRAY') {
         if (grep(/^login$/,@{$cancreate})) {          if (grep(/^login$/,@{$cancreate})) {
             my %domdefaults = &Apache::lonnet::get_domain_defaults($domain);              my %domdefaults = &Apache::lonnet::get_domain_defaults($domain);
             if ((($domdefaults{'auth_def'} =~/^krb/) && ($domdefaults{'auth_arg_def'} ne '')) || ($domdefaults{'auth_def'} eq 'localauth')) {              if ((($domdefaults{'auth_def'} =~/^krb/) && ($domdefaults{'auth_arg_def'} ne '')) || ($domdefaults{'auth_def'} eq 'localauth')) {
                 $output = '<div class="LC_left_float"><h3>'.&mt('Create account with a username provided by this institution').'</h3>';                  $output = '<div class="LC_left_float"><h3>'.$lt{'crea'}.'</h3>';
                 my $submit_text = &mt('Create LON-CAPA account');                  my $submit_text = $lt{'crlc'};
                 $output .= &mt('If you already have a log-in ID at this institution,[_1] you may be able to use it for LON-CAPA.','<br />').'<br /><br />'.&mt('Type in your log-in ID and password to find out.').'<br /><br />';                  $output .= &mt('If you already have a log-in ID at this institution,[_1] you may be able to use it for LON-CAPA.','<br />').
                              '<br /><br />'.$lt{'type'}.'<br /><br />';
                 $output .= &login_box($now,$lonhost,$courseid,$submit_text,                  $output .= &login_box($now,$lonhost,$courseid,$submit_text,
                                       $domain,'createaccount').'</div>';                                        $domain,'createaccount').'</div>';
             }              }
         }          }
         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>'.
                         &mt('You are about to sign-up for a Learn Physics account so you can take the pre-requisite test for enrollment in the online course.').'<br />'.                          '<p class="LC_info">'.
                         &mt('Your performance on the test will help both you and us gauge your readiness to take the course.').'<br />'.                          &mt('You are about to sign-up for the [_1]Mechanics Online[_2] course.','<em>','</em>').'<br />'.
                         &mt('Although the pre-test exam will be the basis for admitting people into the course, we can only accommodate a limited number of students.').'<br />'.                          $lt{'plse'}.'</p><ul>'.
                         &mt('We will e-mail you with instructions on how to access the course by the end of February, if we are able to accommodate you.').'<br />';                          '<li>'.$lt{'inst'}.'</li>'.
             my $captchaform = &create_recaptcha();                          '<li>'.$lt{'aftr'}.'</li>'.
                           '<li>'.$lt{'thes'}.'</li></ul>';
               my $captchaform = &create_recaptcha($pubkey);
             if ($captchaform) {              if ($captchaform) {
                 my $submit_text = &mt('Sign-up');                  my $submit_text = &mt('Sign-up');
                 my $emailform = '<input type="text" name="useremail" size="25" value="" />';                  my $emailform = '<input type="text" name="useremail" size="25" value="" />';
                 if (grep(/^login$/,@{$cancreate})) {                  if (grep(/^login$/,@{$cancreate})) {
                     $output .= &mt('Provide your e-mail address to sign up for a Learn Physics account if you do not have a log-in ID at your institution.','<br />').'<br /><br />';                      $output .= &mt('Provide your e-mail address to sign up for a Mechanics Online account [_1]if you do not have a log-in ID at your institution.','<br />').'<br /><br />';
                 } else {                  } else {
                     $output .= '<br />';                      $output .= '<br />';
                 }                  }
Line 516  sub login_box { Line 529  sub login_box {
   
 sub process_email_request {  sub process_email_request {
     my ($useremail,$domain,$domdesc,$contact_name,$contact_email,$cancreate,      my ($useremail,$domain,$domdesc,$contact_name,$contact_email,$cancreate,
         $server,$settings,$courseid) = @_;          $server,$settings,$courseid,$privkey) = @_;
     $useremail = lc($env{'form.useremail'});      $useremail = lc($env{'form.useremail'});
     my $output;      my $output;
     if (ref($cancreate) eq 'ARRAY') {      if (ref($cancreate) eq 'ARRAY') {
Line 538  sub process_email_request { Line 551  sub process_email_request {
                  my $captcha = Captcha::reCAPTCHA->new;                   my $captcha = Captcha::reCAPTCHA->new;
                  my $captcha_result =                   my $captcha_result =
                      $captcha->check_answer(                       $captcha->check_answer(
                                             'PRIVATEKEY',                                              $privkey,
                                             $ENV{'REMOTE_ADDR'},                                              $ENV{'REMOTE_ADDR'},
                                             $env{'form.recaptcha_challenge_field'},                                              $env{'form.recaptcha_challenge_field'},
                                             $env{'form.recaptcha_response_field'},                                              $env{'form.recaptcha_response_field'},
                                            );                                             );
                   # PRIVATE key from https://www.google.com/recaptcha
                 if (!$captcha_result->{is_valid}) {                  if (!$captcha_result->{is_valid}) {
                     $output = &invalid_state('captcha',$domdesc,$contact_name,                      $output = &invalid_state('captcha',$domdesc,$contact_name,
                                              $contact_email);                                               $contact_email);
Line 608  sub send_token { Line 622  sub send_token {
     my $token = &Apache::lonnet::tmpput(\%info,$server,'createaccount');      my $token = &Apache::lonnet::tmpput(\%info,$server,'createaccount');
     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 $showtime = localtime(time);          my $mailsubj = &mt('Your Mechanics Online Course Account');
         my $mailmsg = &mt('A request was submitted on [_1] for creation of a [_1] account.',$showtime,$domdesc).). "\n".          my $msgfrom  = &mt('Mechanics Online Course Staff');
              &mt('To complete this process please open a web browser and enter the following URL in the address/location box: [_1]',          my $mailmsg =  &mt('Greetings.')."\n\n".
                  "\n\n".&Apache::lonnet::absolute_url().'/adm/createaccount?token='.$esc_token);                         &mt('Thank you for your interest in our Online Mechanics Course.').
         my $result = &Apache::resetpw::send_mail($domdesc,$email,$mailmsg,$contact_name,                         ' '.
                                                  $contact_email);                         &mt('In order to complete the registration process, please open the following link in your web browser:').
                          "\n\n".
                          &Apache::lonnet::absolute_url().'/adm/createaccount?token='.$esc_token).
                          "\n\n".
                          &mt('This link will take you to a sign-up page where you will be asked to provide some general information and finalize the registration process.').
                          ' '.
                          &mt('The course will begin on March 1st, and until that date, a self-test will be available for you to test your level of preparation for our course.').
                          ' '.
                          &mt('The self-test is an integral part of the course, and should be completed by the March 1st start date.').
                          "\n\n".
                          &mt('Best Regards,').
                          "\n\n".
                          &mt('RELATE Group')."\n";
   
           my $result = &Apache::resetpw::send_mail('MIT',$email,$mailmsg,
                                                    $msgfrom,$contact_email,
                                                    $mailsubj);
         if ($result eq 'ok') {          if ($result eq 'ok') {
             $msg .= &mt('A message has been sent to the e-mail address you provided.').'<br />'.&mt('The message includes the web address for the link you will use to complete the sign-up process.').'<br />'.&mt("The link included in the message will be valid for the next [_1]two[_2] hours.",'<b>','</b>');              $msg .= &mt('A message has been sent to the e-mail address you provided.').'<br />'.&mt('The message includes the web address for the link you will use to complete the sign-up process.').'<br />'.&mt("The link included in the message will be valid for the next [_1]two[_2] hours.",'<b>','</b>');
         } else {          } else {
Line 1198  sub linkto_email_help { Line 1228  sub linkto_email_help {
 }  }
   
 sub create_recaptcha {  sub create_recaptcha {
       my ($pubkey) = @_;
     my $captcha = Captcha::reCAPTCHA->new;      my $captcha = Captcha::reCAPTCHA->new;
       # generate PUBLICKEY from https://www.google.com/recaptcha
     return $captcha->get_options_setter({theme => 'white'})."\n".      return $captcha->get_options_setter({theme => 'white'})."\n".
            $captcha->get_html('PUBLICKEY'); # generate public key for IP             $captcha->get_html($pubkey);
                                             # from http://recaptcha.net/  
 }  }
   
 sub getkeys {  sub getkeys {

Removed from v.1.40.2.5.2.2  
changed lines
  Added in v.1.40.2.5.2.9


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