--- loncom/interface/createaccount.pm 2017/08/03 16:22:08 1.74 +++ loncom/interface/createaccount.pm 2021/12/10 04:14:52 1.85 @@ -4,7 +4,7 @@ # kerberos, or SSO) or an e-mail address. Requests to use an e-mail address as # username may be processed automatically, or may be queued for approval. # -# $Id: createaccount.pm,v 1.74 2017/08/03 16:22:08 raeburn Exp $ +# $Id: createaccount.pm,v 1.85 2021/12/10 04:14:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,6 +37,7 @@ use Apache::lonacc; use Apache::lonnet; use Apache::loncommon; use Apache::lonhtmlcommon; +use Apache::lonuserutils; use Apache::lonlocal; use Apache::lonauth; use Apache::resetpw; @@ -328,7 +329,7 @@ sub handler { &print_header($r,$start_page,$courseid,$pagetitle); my $now=time; 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>) { $r->print($line); } @@ -437,7 +438,9 @@ sub javascript_setforms { } $setuserinfo .= ' server.elements.'.$key.'.value=client.elements.'.$key.'.value;'."\n"; } - $setuserinfo .= ' server.elements.type.value=client.elements.type.value;'."\n"; + if ($usertype ne '') { + $setuserinfo .= ' server.elements.type.value=client.elements.type.value;'."\n"; + } } if ($captcha eq 'original') { $setuserinfo .= ' server.elements.code.value=client.elements.code.value;'."\n". @@ -520,10 +523,12 @@ ENDSCRIPT } sub javascript_checkpass { - my ($now,$context) = @_; + my ($now,$context,$domain) = @_; my $nopass = &mt('You must enter a password.'); my $mismatchpass = &mt('The passwords you entered did not match.')."\n". &mt('Please try again.'); + my ($numrules,$intargjs) = + &Apache::lonuserutils::passwd_validation_js('upass',$domain); &js_escape(\$nopass); &js_escape(\$mismatchpass); my $js = <<"ENDSCRIPT"; @@ -540,6 +545,10 @@ sub javascript_checkpass { return false; } if (upass == upasscheck) { + var numrules = $numrules; + if (numrules > 0) { +$intargjs + } client.elements.upasscheck$now.value=''; if (validate_email(client)) { send(one,two,'$context'); @@ -563,8 +572,7 @@ sub javascript_validmail { my %js_lt = &Apache::lonlocal::texthash ( email => 'The e-mail address you entered', notv => 'is not a valid e-mail address', - avae => 'A valid e-mail address is not formed when the value you entered', - isco => 'is combined with the required domain', + avae => 'A valid e-mail address is not formed when the value you entered is combined with the required domain', ); my $output = "\n".'