--- loncom/interface/createaccount.pm 2012/02/13 05:24:22 1.40.2.5.2.5 +++ loncom/interface/createaccount.pm 2012/05/01 13:58:27 1.40.2.5.2.15 @@ -3,7 +3,7 @@ # institutional log-in ID (institutional authentication required - localauth # or kerberos) or an e-mail address. # -# $Id: createaccount.pm,v 1.40.2.5.2.5 2012/02/13 05:24:22 raeburn Exp $ +# $Id: createaccount.pm,v 1.40.2.5.2.15 2012/05/01 13:58:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -57,6 +57,8 @@ sub handler { my $sso_username = $r->subprocess_env->get('REDIRECT_SSOUserUnknown'); 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::lonacc::get_posted_cgi($r); @@ -100,6 +102,10 @@ sub handler { my ($js,$courseid,$title); if (defined($env{'form.courseid'})) { $courseid = &validate_course($env{'form.courseid'}); + if (($courseid eq 'relate_3H121116c19344ff3relatel1') || + ($courseid eq 'relate_3e100973b27484f2drelatel1')) { + $courseid = 'relate_2764113e81b9e4f0crelatel1'; + } } if ($courseid ne '') { $js = &catreturn_js(); @@ -225,7 +231,7 @@ sub handler { $output = &process_email_request($env{'form.useremail'},$domain,$domdesc, $contact_name,$contact_email,$cancreate, $lonhost,$domconfig{'usercreation'}, - $courseid); + $courseid,$privkey); } elsif (!$token) { &print_header($r,$start_page,$courseid); my $now=time; @@ -238,7 +244,7 @@ sub handler { $r->print(&javascript_validmail()); } $output = &print_username_form($domain,$domdesc,$cancreate,$now,$lonhost, - $courseid); + $courseid,$pubkey); } $r->print($output); &print_footer($r); @@ -398,7 +404,7 @@ ENDSCRIPT } sub print_username_form { - my ($domain,$domdesc,$cancreate,$now,$lonhost,$courseid) = @_; + my ($domain,$domdesc,$cancreate,$now,$lonhost,$courseid,$pubkey) = @_; my %lt = &Apache::lonlocal::texthash ( unam => 'username', udom => 'domain', @@ -407,11 +413,10 @@ sub print_username_form { 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.', - sign => 'You are about to sign-up for the Mechanics Online course.', 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', + aftr => 'After completing the activation process you will be directed to the course, where you will have access to a "self test" that will help you assess your readiness for the course. You will also have access to some introductory material and to the course schedule and policies.', + yous => 'Your user id for the course is your email address.', ); my $output; if (ref($cancreate) eq 'ARRAY') { @@ -428,12 +433,13 @@ sub print_username_form { } if (grep(/^email$/,@{$cancreate})) { $output .= '

'.&mt('Create account with an e-mail address as your username').'

'. - $lt{'sign'}.'
'. - $lt{'plse'}.'
'. - $lt{'inst'}.'
'. - $lt{'aftr'}.'
'. - $lt{'thes'}.'
'; - my $captchaform = &create_recaptcha(); + '

'. + &mt('You are about to sign-up for the [_1]Mechanics Online[_2] course.','','').'
'. + $lt{'plse'}.'

'; + my $captchaform = &create_recaptcha($pubkey); if ($captchaform) { my $submit_text = &mt('Sign-up'); my $emailform = ''; @@ -527,7 +533,7 @@ sub login_box { sub process_email_request { my ($useremail,$domain,$domdesc,$contact_name,$contact_email,$cancreate, - $server,$settings,$courseid) = @_; + $server,$settings,$courseid,$privkey) = @_; $useremail = lc($env{'form.useremail'}); my $output; if (ref($cancreate) eq 'ARRAY') { @@ -549,7 +555,7 @@ sub process_email_request { my $captcha = Captcha::reCAPTCHA->new; my $captcha_result = $captcha->check_answer( - 'PRIVATEKEY', + $privkey, $ENV{'REMOTE_ADDR'}, $env{'form.recaptcha_challenge_field'}, $env{'form.recaptcha_response_field'}, @@ -609,7 +615,7 @@ sub call_rulecheck { sub send_token { my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid) = @_; my $msg = '

'.&mt('Account creation status').'

'. - &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.'). '

'; my $now = time; my %info = ('ip' => $ENV{'REMOTE_ADDR'}, @@ -620,12 +626,26 @@ sub send_token { my $token = &Apache::lonnet::tmpput(\%info,$server,'createaccount'); if ($token !~ /^error/ && $token ne 'no_such_host') { my $esc_token = &escape($token); - my $showtime = localtime(time); - my $mailmsg = &mt('A request was submitted on [_1] for creation of a [_2] account.',$showtime,$domdesc)."\n". - &mt('To complete this process please open a web browser and enter the following URL in the address/location box: [_1]', - "\n\n".&Apache::lonnet::absolute_url().'/adm/createaccount?token='.$esc_token); - my $result = &Apache::resetpw::send_mail($domdesc,$email,$mailmsg,$contact_name, - $contact_email); + my $mailsubj = &mt('Your Mechanics Online Course Account'); + my $msgfrom = &mt('Mechanics Online Course Staff'); + my $mailmsg = &mt('Greetings.')."\n\n". + &mt('Thank you for your interest in our Online Mechanics Course.'). + ' '. + &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('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') { $msg .= &mt('A message has been sent to the e-mail address you provided.').'
'.&mt('The message includes the web address for the link you will use to complete the sign-up process.').'
'.&mt("The link included in the message will be valid for the next [_1]two[_2] hours.",'',''); } else { @@ -1210,10 +1230,11 @@ sub linkto_email_help { } sub create_recaptcha { + my ($pubkey) = @_; my $captcha = Captcha::reCAPTCHA->new; # generate PUBLICKEY from https://www.google.com/recaptcha return $captcha->get_options_setter({theme => 'white'})."\n". - $captcha->get_html('PUBLICKEY'); + $captcha->get_html($pubkey); } sub getkeys {