version 1.68, 2014/06/19 23:36:54
|
version 1.72.2.1, 2017/11/16 23:38:40
|
Line 278 sub handler {
|
Line 278 sub handler {
|
&print_header($r,$start_page,$courseid); |
&print_header($r,$start_page,$courseid); |
my $now=time; |
my $now=time; |
if ((grep(/^login$/,@{$cancreate})) && (!grep(/^email$/,@{$cancreate}))) { |
if ((grep(/^login$/,@{$cancreate})) && (!grep(/^email$/,@{$cancreate}))) { |
if (open(my $jsh,"<$include/londes.js")) { |
if (open(my $jsh,"<","$include/londes.js")) { |
while(my $line = <$jsh>) { |
while(my $line = <$jsh>) { |
$r->print($line); |
$r->print($line); |
} |
} |
Line 319 sub print_footer {
|
Line 319 sub print_footer {
|
$r->print('<form name="backupcrumbs" method="post" action="">'. |
$r->print('<form name="backupcrumbs" method="post" action="">'. |
&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','crypt','cfirstname','clastname', |
'code','crypt','cfirstname','clastname','g-recaptcha-response', |
'recaptcha_challenge_field','recaptcha_response_field', |
'recaptcha_challenge_field','recaptcha_response_field', |
'cmiddlename','cgeneration','cpermanentemail','cid']). |
'cmiddlename','cgeneration','cpermanentemail','cid']). |
'</form>'); |
'</form>'); |
Line 366 sub selfenroll_crumbs {
|
Line 366 sub selfenroll_crumbs {
|
} |
} |
|
|
sub javascript_setforms { |
sub javascript_setforms { |
my ($now,$emailusername,$captcha,$usertype) = @_; |
my ($now,$emailusername,$captcha,$usertype,$recaptchaversion) = @_; |
my ($setuserinfo,@required,$requiredchk); |
my ($setuserinfo,@required,$requiredchk); |
if (ref($emailusername) eq 'HASH') { |
if (ref($emailusername) eq 'HASH') { |
if (ref($emailusername->{$usertype}) eq 'HASH') { |
if (ref($emailusername->{$usertype}) eq 'HASH') { |
Line 382 sub javascript_setforms {
|
Line 382 sub javascript_setforms {
|
$setuserinfo .= ' server.elements.code.value=client.elements.code.value;'."\n". |
$setuserinfo .= ' server.elements.code.value=client.elements.code.value;'."\n". |
' server.elements.crypt.value=client.elements.crypt.value;'."\n"; |
' server.elements.crypt.value=client.elements.crypt.value;'."\n"; |
} elsif ($captcha eq 'recaptcha') { |
} elsif ($captcha eq 'recaptcha') { |
$setuserinfo .= |
if ($recaptchaversion ne '2') { |
|
$setuserinfo .= |
' server.elements.recaptcha_challenge_field.value=client.elements.recaptcha_challenge_field.value;'."\n". |
' server.elements.recaptcha_challenge_field.value=client.elements.recaptcha_challenge_field.value;'."\n". |
' server.elements.recaptcha_response_field.value=client.elements.recaptcha_response_field.value;'."\n"; |
' server.elements.recaptcha_response_field.value=client.elements.recaptcha_response_field.value;'."\n"; |
|
} |
} |
} |
} |
} |
if (@required) { |
if (@required) { |
my $missprompt = &mt('One or more required fields are currently blank.'); |
my $missprompt = &mt('One or more required fields are currently blank.'); |
|
&js_escape(\$missprompt); |
my $reqstr = join("','",@required); |
my $reqstr = join("','",@required); |
$requiredchk = <<"ENDCHK"; |
$requiredchk = <<"ENDCHK"; |
var requiredfields = new Array('$reqstr'); |
var requiredfields = new Array('$reqstr'); |
Line 430 $requiredchk
|
Line 433 $requiredchk
|
initkeys(); |
initkeys(); |
|
|
server.elements.upass.value |
server.elements.upass.value |
= crypted(client.elements.upass$now.value); |
= getCrypted(client.elements.upass$now.value); |
|
|
client.elements.uname.value=''; |
client.elements.uname.value=''; |
client.elements.upass$now.value=''; |
client.elements.upass$now.value=''; |
Line 443 $setuserinfo
|
Line 446 $setuserinfo
|
} |
} |
return false; |
return false; |
} |
} |
|
|
// ]]> |
// ]]> |
</script> |
</script> |
ENDSCRIPT |
ENDSCRIPT |
|
if (($captcha eq 'recaptcha') && ($recaptchaversion eq '2')) { |
|
$js .= "\n".'<script src="https://www.google.com/recaptcha/api.js"></script>'."\n"; |
|
} |
return $js; |
return $js; |
} |
} |
|
|
sub javascript_checkpass { |
sub javascript_checkpass { |
my ($now,$context) = @_; |
my ($now,$context) = @_; |
my $nopass = &mt('You must enter a password.'); |
my $nopass = &mt('You must enter a password.'); |
my $mismatchpass = &mt('The passwords you entered did not match.').'\\n'. |
my $mismatchpass = &mt('The passwords you entered did not match.')."\n". |
&mt('Please try again.'); |
&mt('Please try again.'); |
|
&js_escape(\$nopass); |
|
&js_escape(\$mismatchpass); |
my $js = <<"ENDSCRIPT"; |
my $js = <<"ENDSCRIPT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 487 ENDSCRIPT
|
Line 496 ENDSCRIPT
|
} |
} |
|
|
sub javascript_validmail { |
sub javascript_validmail { |
my %lt = &Apache::lonlocal::texthash ( |
my %js_lt = &Apache::lonlocal::texthash ( |
email => 'The e-mail address you entered', |
email => 'The e-mail address you entered', |
notv => 'is not a valid e-mail address', |
notv => 'is not a valid e-mail address', |
); |
); |
my $output = "\n".'<script type="text/javascript">'."\n". |
my $output = "\n".'<script type="text/javascript">'."\n". |
'// <![CDATA['."\n". |
'// <![CDATA['."\n". |
&Apache::lonhtmlcommon::javascript_valid_email()."\n"; |
&Apache::lonhtmlcommon::javascript_valid_email()."\n"; |
|
&js_escape(\%js_lt); |
$output .= <<"ENDSCRIPT"; |
$output .= <<"ENDSCRIPT"; |
function validate_email(client) { |
function validate_email(client) { |
field = client.uname; |
field = client.uname; |
if (validmail(field) == false) { |
if (validmail(field) == false) { |
alert("$lt{'email'}: "+field.value+" $lt{'notv'}."); |
alert("$js_lt{'email'}: "+field.value+" $js_lt{'notv'}."); |
return false; |
return false; |
} |
} |
return true; |
return true; |
Line 539 sub print_username_form {
|
Line 549 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>'; |
my ($captchaform,$error,$captcha) = &Apache::loncommon::captcha_display('usercreation',$lonhost); |
my ($captchaform,$error,$captcha,$recaptchaversion) = |
|
&Apache::loncommon::captcha_display('usercreation',$lonhost); |
if ($error) { |
if ($error) { |
my $helpdesk = '/adm/helpdesk?origurl=%2fadm%2fcreateaccount'; |
my $helpdesk = '/adm/helpdesk?origurl=%2fadm%2fcreateaccount'; |
if ($courseid ne '') { |
if ($courseid ne '') { |
Line 568 sub print_username_form {
|
Line 579 sub print_username_form {
|
$lt{'yopw'}.'<br />'; |
$lt{'yopw'}.'<br />'; |
} |
} |
$output .= &print_dataentry_form($r,$domain,$lonhost,$include,$now,$captchaform, |
$output .= &print_dataentry_form($r,$domain,$lonhost,$include,$now,$captchaform, |
$courseid,$emailusername,$captcha,$usertype); |
$courseid,$emailusername,$captcha,$usertype, |
|
$recaptchaversion); |
} |
} |
$output .= '</div>'; |
$output .= '</div>'; |
} |
} |
Line 856 sub process_mailtoken {
|
Line 868 sub process_mailtoken {
|
|
|
sub start_session { |
sub start_session { |
my ($r,$username,$domain,$uhome,$courseid,$token) = @_; |
my ($r,$username,$domain,$uhome,$courseid,$token) = @_; |
|
my ($is_balancer) = &Apache::lonnet::check_loadbalancing($username,$domain); |
if ($r->dir_config('lonBalancer') eq 'yes') { |
if ($is_balancer) { |
Apache::lonauth::success($r, $username, $domain, $uhome, |
Apache::lonauth::success($r, $username, $domain, $uhome, |
'noredirect', undef, {}); |
'noredirect', undef, {}); |
|
|
Line 871 sub start_session {
|
Line 883 sub start_session {
|
($courseid ? "/adm/selfenroll?courseid=$courseid" : '/adm/roles'), |
($courseid ? "/adm/selfenroll?courseid=$courseid" : '/adm/roles'), |
undef, {}); |
undef, {}); |
} |
} |
|
|
return; |
return; |
} |
} |
|
|
Line 882 sub start_session {
|
Line 893 sub start_session {
|
# |
# |
sub print_dataentry_form { |
sub print_dataentry_form { |
my ($r,$domain,$lonhost,$include,$now,$captchaform,$courseid,$emailusername,$captcha, |
my ($r,$domain,$lonhost,$include,$now,$captchaform,$courseid,$emailusername,$captcha, |
$usertype) = @_; |
$usertype,$recaptchaversion) = @_; |
my ($error,$output); |
my ($error,$output); |
if (open(my $jsh,"<$include/londes.js")) { |
if (open(my $jsh,"<","$include/londes.js")) { |
while(my $line = <$jsh>) { |
while(my $line = <$jsh>) { |
$r->print($line); |
$r->print($line); |
} |
} |
close($jsh); |
close($jsh); |
$output = &javascript_setforms($now,$emailusername,$captcha,$usertype)."\n". |
$output = &javascript_setforms($now,$emailusername,$captcha,$usertype,$recaptchaversion). |
&javascript_checkpass($now,'email'); |
"\n".&javascript_checkpass($now,'email'); |
my ($lkey,$ukey) = &Apache::loncommon::des_keys(); |
my ($lkey,$ukey) = &Apache::loncommon::des_keys(); |
my ($lextkey,$uextkey) = &getkeys($lkey,$ukey); |
my ($lextkey,$uextkey) = &getkeys($lkey,$ukey); |
my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount:createaccount', |
my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount:createaccount', |
Line 914 sub print_dataentry_form {
|
Line 925 sub print_dataentry_form {
|
<input type="hidden" name="code" value="" /> |
<input type="hidden" name="code" value="" /> |
'; |
'; |
} elsif ($captcha eq 'recaptcha') { |
} elsif ($captcha eq 'recaptcha') { |
$output .= ' |
if ($recaptchaversion eq '2') { |
|
$output .= "$captchaform\n"; |
|
undef($captchaform); |
|
} else { |
|
$output .= ' |
<input type="hidden" name="recaptcha_challenge_field" value="" /> |
<input type="hidden" name="recaptcha_challenge_field" value="" /> |
<input type="hidden" name="recaptcha_response_field" value="" /> |
<input type="hidden" name="recaptcha_response_field" value="" /> |
'; |
'; |
|
} |
} |
} |
$output .= <<"ENDSERVERFORM"; |
$output .= <<"ENDSERVERFORM"; |
<input type="hidden" name="logtoken" value="$logtoken" /> |
<input type="hidden" name="logtoken" value="$logtoken" /> |
Line 1621 sub sso_logout_frag {
|
Line 1637 sub sso_logout_frag {
|
if (defined($r->dir_config('lonSSOUserLogoutMessageFile_'.$domain))) { |
if (defined($r->dir_config('lonSSOUserLogoutMessageFile_'.$domain))) { |
my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile_'.$domain); |
my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile_'.$domain); |
if (-e $msgfile) { |
if (-e $msgfile) { |
open(my $fh,"<$msgfile"); |
open(my $fh,"<",$msgfile); |
$endsessionmsg = join('',<$fh>); |
$endsessionmsg = join('',<$fh>); |
close($fh); |
close($fh); |
} |
} |
} elsif (defined($r->dir_config('lonSSOUserLogoutMessageFile'))) { |
} elsif (defined($r->dir_config('lonSSOUserLogoutMessageFile'))) { |
my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile'); |
my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile'); |
if (-e $msgfile) { |
if (-e $msgfile) { |
open(my $fh,"<$msgfile"); |
open(my $fh,"<",$msgfile); |
$endsessionmsg = join('',<$fh>); |
$endsessionmsg = join('',<$fh>); |
close($fh); |
close($fh); |
} |
} |