--- loncom/interface/lonpreferences.pm 2019/04/24 21:15:48 1.231 +++ loncom/interface/lonpreferences.pm 2019/05/06 18:19:16 1.234 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.231 2019/04/24 21:15:48 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.234 2019/05/06 18:19:16 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1636,69 +1636,8 @@ ENDERROR return 1; } } else { - my %passwdconf = &Apache::lonnet::get_passwdconf($domain); - my ($min,$max,@chars,@brokerule); - if (ref($passwdconf{'chars'}) eq 'ARRAY') { - if ($passwdconf{'min'} =~ /^\d+$/) { - $min = $passwdconf{'min'}; - } - if ($passwdconf{'max'} =~ /^\d+$/) { - $max = $passwdconf{'max'}; - } - @chars = @{$passwdconf{'chars'}}; - } else { - $min = 7; - } - if (($min) && (length($newpass1) < $min)) { - push(@brokerule,'min'); - } - if (($max) && (length($newpass1) > $max)) { - push(@brokerule,'max'); - } - if (@chars) { - my %rules; - map { $rules{$_} = 1; } @chars; - if ($rules{'uc'}) { - unless ($newpass1 =~ /[A-Z]/) { - push(@brokerule,'uc'); - } - } - if ($rules{'lc'}) { - unless ($newpass1 =~ /a-z/) { - push(@brokerule,'lc'); - } - } - if ($rules{'num'}) { - unless ($newpass1 =~ /\d/) { - push(@brokerule,'num'); - } - } - if ($rules{'spec'}) { - unless ($newpass1 =~ /[!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/) { - push(@brokerule,'spec'); - } - } - } - if (@brokerule) { - my %rulenames = &Apache::lonlocal::texthash( - uc => 'At least one upper case letter', - lc => 'At least one lower case letter', - num => 'At least one number', - spec => 'At least one non-alphanumeric', - ); - $rulenames{'uc'} .= ': ABCDEFGHIJKLMNOPQRSTUVWXYZ'; - $rulenames{'lc'} .= ': abcdefghijklmnopqrstuvwxyz'; - $rulenames{'num'} .= ': 0123456789'; - $rulenames{'spec'} .= ': !"\#$%&\'()*+,-./:;<=>?@[\]^_\`{|}~'; - $rulenames{'min'} = &mt('Minimum password length: [_1]',$min); - $rulenames{'max'} = &mt('Maximum password length: [_1]',$max); - my $warning = &mt('Password did not satisfy the following:').''; + my $warning = &Apache::loncommon::check_passwd_rules($domain,$newpass1); + if ($warning) { &passwordchanger($r,''. $warning. &mt('Please try again.').'', @@ -1752,8 +1691,14 @@ ENDERROR return $result; } } else { + my $feedback; + if ($result eq 'prioruse') { + $feedback = &mt('Please enter a password that you have not used recently.'); + } else { + $feedback = &mt('Please make sure your old password was entered correctly.'); + } $message = &Apache::lonhtmlcommon::confirm_success( - &mt("The password for user [_1] was not changed.",''.$user.'').' '.&mt('Please make sure your old password was entered correctly.'),1); + &mt("The password for user [_1] was not changed.",''.$user.'').' '.$feedback,1); $message=&Apache::loncommon::confirmwrapper($message); &print_main_menu($r, $message); if (ref($ended)) {