--- loncom/interface/createaccount.pm 2017/08/03 20:06:21 1.75 +++ loncom/interface/createaccount.pm 2019/05/05 04:00:42 1.77 @@ -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.75 2017/08/03 20:06:21 raeburn Exp $ +# $Id: createaccount.pm,v 1.77 2019/05/05 04:00:42 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); } @@ -520,10 +521,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 +543,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'); @@ -1089,14 +1096,14 @@ sub print_dataentry_form { my ($r,$domain,$lonhost,$include,$now,$captchaform,$courseid,$emailusername,$captcha, $usertype,$recaptchaversion,$usernameset,$condition,$excluded) = @_; my ($error,$output); - if (open(my $jsh,"<$include/londes.js")) { + if (open(my $jsh,"<","$include/londes.js")) { while(my $line = <$jsh>) { $r->print($line); } close($jsh); $output = &javascript_setforms($now,$emailusername,$captcha,$usertype,$recaptchaversion, $usernameset,$condition,$excluded). - "\n".&javascript_checkpass($now,'email'); + "\n".&javascript_checkpass($now,'email',$domain); my ($lkey,$ukey) = &Apache::loncommon::des_keys(); my ($lextkey,$uextkey) = &getkeys($lkey,$ukey); my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount:createaccount', @@ -1886,14 +1893,14 @@ sub sso_logout_frag { if (defined($r->dir_config('lonSSOUserLogoutMessageFile_'.$domain))) { my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile_'.$domain); if (-e $msgfile) { - open(my $fh,"<$msgfile"); + open(my $fh,"<",$msgfile); $endsessionmsg = join('',<$fh>); close($fh); } } elsif (defined($r->dir_config('lonSSOUserLogoutMessageFile'))) { my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile'); if (-e $msgfile) { - open(my $fh,"<$msgfile"); + open(my $fh,"<",$msgfile); $endsessionmsg = join('',<$fh>); close($fh); }