Diff for /loncom/interface/lonpreferences.pm between versions 1.231 and 1.235

version 1.231, 2019/04/24 21:15:48 version 1.235, 2019/08/21 22:41:13
Line 363  $options.' Line 363  $options.'
 &Apache::lonhtmlcommon::row_closure(1).  &Apache::lonhtmlcommon::row_closure(1).
 &Apache::lonhtmlcommon::end_pick_box().'  &Apache::lonhtmlcommon::end_pick_box().'
 </div>');  </div>');
     if ($roles_check_list) {       if ($roles_check_list) {
         $r->print('<div class="LC_left_float">          $r->print('<div class="LC_left_float">
 <h4>'.&mt('Freeze Roles').'</h4>  <h4>'.&mt('Freeze Roles').'</h4>
 <p>'.&mt('The table below can be used to [_1]freeze[_2] '.$lc_role.'s in the Hotlist.','<q>','</q>').'<br />'.  <p>'.&mt('The table below can be used to [_1]freeze[_2] '.$lc_role.'s in the Hotlist.','<q>','</q>').'<br />'.
Line 1408  sub jscript_send { Line 1408  sub jscript_send {
 |;  |;
         }          }
         if ((ref($extrafields) eq 'HASH') && ($extrafields->{'email'})) {          if ((ref($extrafields) eq 'HASH') && ($extrafields->{'email'})) {
             $output .= qq|               $output .= qq|
         this.document.pserver.elements.email.value =          this.document.pserver.elements.email.value =
                    this.document.client.elements.email.value;                     this.document.client.elements.email.value;
 |;  |;
Line 1444  sub client_form { Line 1444  sub client_form {
                       .&Apache::lonhtmlcommon::row_closure();                        .&Apache::lonhtmlcommon::row_closure();
         }          }
         if ((ref($extrafields) eq 'HASH') && ($extrafields->{'username'})) {          if ((ref($extrafields) eq 'HASH') && ($extrafields->{'username'})) {
             $output .= &Apache::lonhtmlcommon::row_title(                $output .= &Apache::lonhtmlcommon::row_title(
                        '<label for="uname">'.$lt{'username'}.'</label>')                         '<label for="uname">'.$lt{'username'}.'</label>')
                       .'<input type="text" name="uname" size="20" autocapitalize="off" autocorrect="off" />'                        .'<input type="text" name="uname" size="20" autocapitalize="off" autocorrect="off" />'
                       .&Apache::lonhtmlcommon::row_closure()                        .&Apache::lonhtmlcommon::row_closure()
Line 1636  ENDERROR Line 1636  ENDERROR
             return 1;              return 1;
         }          }
     } else {      } else {
         my %passwdconf = &Apache::lonnet::get_passwdconf($domain);          my $warning = &Apache::loncommon::check_passwd_rules($domain,$newpass1);
         my ($min,$max,@chars,@brokerule);          if ($warning) {
         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'} .= ': !&quot;\#$%&amp;\'()*+,-./:;&lt;=&gt;?@[\]^_\`{|}~';  
             $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:').'<ul>';  
             foreach my $rule ('min','max','uc','ls','num','spec') {  
                 if (grep(/^$rule$/,@brokerule)) {  
                     $warning .= '<li>'.$rulenames{$rule}.'</li>';  
                 }  
             }  
             $warning .= '</ul>';  
             &passwordchanger($r,'<span class="LC_warning">'.              &passwordchanger($r,'<span class="LC_warning">'.
                             $warning.                              $warning.
                             &mt('Please try again.').'</span>',                              &mt('Please try again.').'</span>',
Line 1752  ENDERROR Line 1691  ENDERROR
                 return $result;                  return $result;
             }              }
         } else {          } 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(              $message = &Apache::lonhtmlcommon::confirm_success(
                 &mt("The password for user [_1] was not changed.",'<i>'.$user.'</i>').' '.&mt('Please make sure your old password was entered correctly.'),1);                  &mt("The password for user [_1] was not changed.",'<i>'.$user.'</i>').' '.$feedback,1);
             $message=&Apache::loncommon::confirmwrapper($message);              $message=&Apache::loncommon::confirmwrapper($message);
             &print_main_menu($r, $message);              &print_main_menu($r, $message);
             if (ref($ended)) {              if (ref($ended)) {
Line 2361  sub handler { Line 2306  sub handler {
     } else {      } else {
         $brlink ='/adm/preferences';          $brlink ='/adm/preferences';
         $brtxt = 'Set User Preferences';          $brtxt = 'Set User Preferences';
         $brhelp = 'Prefs_About_Me,Prefs_Language,Prefs_Screen_Name_Nickname,Change_Colors,Change_Password,Prefs_Messages,Change_Discussion_Display';             $brhelp = 'Prefs_About_Me,Prefs_Language,Prefs_Screen_Name_Nickname,Change_Colors,Change_Password,Prefs_Messages,Change_Discussion_Display';
     }      }
     Apache::lonhtmlcommon::add_breadcrumb      Apache::lonhtmlcommon::add_breadcrumb
         ({href => $brlink,          ({href => $brlink,

Removed from v.1.231  
changed lines
  Added in v.1.235


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>