--- loncom/interface/createaccount.pm 2012/02/12 19:59:31 1.40.2.5.2.4
+++ loncom/interface/createaccount.pm 2012/02/13 17:22:56 1.40.2.5.2.6
@@ -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.4 2012/02/12 19:59:31 raeburn Exp $
+# $Id: createaccount.pm,v 1.40.2.5.2.6 2012/02/13 17:22:56 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->subprocess_env->get('reCAPTCHA_PRIVATE');
+ my $pubkey = $r->subprocess_env->get('reCAPTCHA_PUBLIC')
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token','courseid']);
&Apache::lonacc::get_posted_cgi($r);
@@ -225,7 +227,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 +240,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,36 +400,47 @@ ENDSCRIPT
}
sub print_username_form {
- my ($domain,$domdesc,$cancreate,$now,$lonhost,$courseid) = @_;
- my %lt = &Apache::lonlocal::texthash(
- unam => 'username',
- udom => 'domain',
- uemail => 'E-mail address in LON-CAPA',
- proc => 'Proceed');
+ my ($domain,$domdesc,$cancreate,$now,$lonhost,$courseid,$pubkey) = @_;
+ my %lt = &Apache::lonlocal::texthash (
+ unam => 'username',
+ udom => 'domain',
+ uemail => 'E-mail address in LON-CAPA',
+ 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.',
+ 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',
+ );
my $output;
if (ref($cancreate) eq 'ARRAY') {
if (grep(/^login$/,@{$cancreate})) {
my %domdefaults = &Apache::lonnet::get_domain_defaults($domain);
if ((($domdefaults{'auth_def'} =~/^krb/) && ($domdefaults{'auth_arg_def'} ne '')) || ($domdefaults{'auth_def'} eq 'localauth')) {
- $output = '
'.&mt('Create account with a username provided by this institution').'
';
- my $submit_text = &mt('Create LON-CAPA account');
- $output .= &mt('If you already have a log-in ID at this institution,[_1] you may be able to use it for LON-CAPA.',' ').'
'.&mt('Type in your log-in ID and password to find out.').'
';
+ $output = '
'.$lt{'crea'}.'
';
+ 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.',' ').
+ '
';
}
}
if (grep(/^email$/,@{$cancreate})) {
$output .= '
'.&mt('Create account with an e-mail address as your username').'
'.
- &mt('You are about to sign-up for a Mechanics Online account so you can take the pre-requisite test for enrollment in the online course.').' '.
- &mt('Your performance on the test will help both you and us gauge your readiness to take the course.').' '.
- &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.').' '.
- &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.').' ';
- my $captchaform = &create_recaptcha();
+ $lt{'sign'}.' '.
+ $lt{'plse'}.' '.
+ $lt{'inst'}.' '.
+ $lt{'aftr'}.' '.
+ $lt{'thes'}.' ';
+ my $captchaform = &create_recaptcha($pubkey);
if ($captchaform) {
my $submit_text = &mt('Sign-up');
my $emailform = '';
if (grep(/^login$/,@{$cancreate})) {
- $output .= &mt('Provide your e-mail address to sign up for a Mechanics Online account if you do not have a log-in ID at your institution.',' ').'
';
+ $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.',' ').'
';
} else {
$output .= ' ';
}
@@ -516,7 +529,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') {
@@ -538,7 +551,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'},
@@ -610,7 +623,7 @@ sub send_token {
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 [_1] account.',$showtime,$domdesc)."\n".
+ 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,
@@ -1199,10 +1212,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 {