Diff for /loncom/interface/createaccount.pm between versions 1.40.2.5.2.5 and 1.40.2.5.2.11

version 1.40.2.5.2.5, 2012/02/13 05:24:22 version 1.40.2.5.2.11, 2012/03/01 00:25:15
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 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',
Line 407  sub print_username_form { Line 409  sub print_username_form {
         crea   => 'Create account with a username provided by this institution',          crea   => 'Create account with a username provided by this institution',
         crlc   => 'Create LON-CAPA account',          crlc   => 'Create LON-CAPA account',
         type   => 'Type in your log-in ID and password to find out.',          type   => 'Type in your log-in ID and password to find out.',
         sign   => 'You are about to sign-up for the Mechanics Online course.',  
         plse   => 'Please enter a valid e-mail address below.',          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.',          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.',          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',          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') {
Line 428  sub print_username_form { Line 429  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>'.
                         $lt{'sign'}.'<br />'.                          '<p class="LC_info">'.
                         $lt{'plse'}.'<br />'.                          &mt('You are about to sign-up for the [_1]Mechanics Online[_2] course.','<em>','</em>').'<br />'.
                         $lt{'inst'}.'<br />'.                          $lt{'plse'}.'</p><ul>'.
                         $lt{'aftr'}.'<br />'.                          '<li>'.$lt{'inst'}.'</li>'.
                         $lt{'thes'}.'<br />';                          '<li>'.$lt{'aftr'}.'</li>'.
             my $captchaform = &create_recaptcha();                          '<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="" />';
Line 527  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 549  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'},
Line 609  sub call_rulecheck { Line 611  sub call_rulecheck {
 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>'.
               &mt('Thank you for your request to create a new LON-CAPA account.').                &mt('Thank you for your request to create a new Mechanics Online account.').
               '<br /><br />';                '<br /><br />';
     my $now = time;      my $now = time;
     my %info = ('ip'         => $ENV{'REMOTE_ADDR'},      my %info = ('ip'         => $ENV{'REMOTE_ADDR'},
Line 620  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 [_2] 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('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('A self-test (for review) is available within the course, for you to test your level of preparation.').
                          "\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 1210  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      # 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');             $captcha->get_html($pubkey);
 }  }
   
 sub getkeys {  sub getkeys {

Removed from v.1.40.2.5.2.5  
changed lines
  Added in v.1.40.2.5.2.11


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