--- loncom/interface/lonpreferences.pm 2019/04/30 12:56:23 1.232 +++ loncom/interface/lonpreferences.pm 2019/05/05 23:19:47 1.233 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.232 2019/04/30 12:56:23 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.233 2019/05/05 23:19:47 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_rule($domain,$newpass1); + if ($warning) { &passwordchanger($r,''. $warning. &mt('Please try again.').'',