Diff for /loncom/interface/resetpw.pm between versions 1.46 and 1.47

version 1.46, 2019/08/30 00:09:39 version 1.47, 2020/02/09 04:43:20
Line 639  sub reset_passwd { Line 639  sub reset_passwd {
                             $invalidinfo = "||$env{'form.uname'}|| ||$env{'form.udom'}|| ";                              $invalidinfo = "||$env{'form.uname'}|| ||$env{'form.udom'}|| ";
                         }                          }
                     } else {                      } else {
                         unless ((lc($env{'form.uname'}) eq lc($data{'username'})) && (lc($env{'form.udom'}) eq lc($data{'domain'}))) {                          if ((lc($env{'form.uname'}) eq lc($data{'username'})) && (lc($env{'form.udom'}) eq lc($data{'domain'}))) {
                               $env{'form.uname'} = $data{'username'};
                           } else {
                             $invalidinfo = "||$env{'form.uname'}|| ||$env{'form.udom'}|| ";                              $invalidinfo = "||$env{'form.uname'}|| ||$env{'form.udom'}|| ";
                         }                          }
                     }                      }
Line 661  sub reset_passwd { Line 663  sub reset_passwd {
                 }                  }
                 if ($invalidinfo) {                  if ($invalidinfo) {
                     &Apache::lonnet::logthis("Forgot Password -- token data: ||$data{'username'}|| ||$data{'domain'}|| ||$data{'email'}|| differs from form: $invalidinfo");                      &Apache::lonnet::logthis("Forgot Password -- token data: ||$data{'username'}|| ||$data{'domain'}|| ||$data{'email'}|| differs from form: $invalidinfo");
                     $r->print(&generic_failure_msg($contact_name,$contact_email));                      my $retry;
                       $r->print(
                                 '<p class="LC_warning">'
                                .&mt('A problem occurred when attempting to reset'
                                .' the password for your account.').'</p>');
                       if (($formfields{'username'}) && ($formfields{'email'})) {
                           if ($needscase) {
                               $r->print('<p>'
                                        .&mt('Please verify you entered the correct username and e-mail address, '
                                        .'including the correct lower and/or upper case letters')
                                        .'</p>');
                           } else {
                               $r->print('<p>'
                                        .&mt('Please verify you entered the correct username and e-mail address.')
                                        .'</p>');
                           }
                           $retry = 1;
                       } elsif ($formfields{'username'}) {
                           if ($needscase) {
                               $r->print('<p>'
                                        .&mt('Please verify you entered the correct username, '
                                        .'including the correct lower and/or upper case letters')
                                        .'</p>');
                           } else {
                               $r->print('<p>'
                                        .&mt('Please verify you entered the correct username.')
                                        .'</p>');
                           }
                           $retry = 1;
                       } elsif ($formfields{'email'}) {
                           if ($needscase) {
                               $r->print('<p>'
                                        .&mt('Please verify you entered the correct e-mail address, '
                                        .'including the correct lower and/or upper case letters')
                                        .'</p>');
                           } else {
                               $r->print('<p>'
                                        .&mt('Please verify you entered the correct e-mail address.')
                                        .'</p>');
                           }
                           $retry = 1;
                       }
                       if ($retry) {
                            &Apache::lonpreferences::passwordchanger($r,'','reset_by_email',$token,$timelimit,\%formfields);
                       } else {
                           $r->print(&generic_failure_msg($contact_name,$contact_email));
                       }
                     unless ($formfields{'username'}) {                      unless ($formfields{'username'}) {
                         delete($env{'form.uname'});                          delete($env{'form.uname'});
                         delete($env{'form.udom'});                          delete($env{'form.udom'});
Line 669  sub reset_passwd { Line 717  sub reset_passwd {
                     return;                      return;
                 }                  }
                 my $change_failed =                  my $change_failed =
     &Apache::lonpreferences::verify_and_change_password($r,'reset_by_email',$token);      &Apache::lonpreferences::verify_and_change_password($r,'reset_by_email',$token,$timelimit,\%formfields);
                 if (!$change_failed) {                  if (!$change_failed) {
                     my $delete = &Apache::lonnet::tmpdel($token);                      my $delete = &Apache::lonnet::tmpdel($token);
                     my $now = &Apache::lonlocal::locallocaltime(time);                      my $now = &Apache::lonlocal::locallocaltime(time);
Line 729  sub reset_passwd { Line 777  sub reset_passwd {
                          .'</p>'                           .'</p>'
                          .&display_actions($contact_email,$domdesc,$token)                           .&display_actions($contact_email,$domdesc,$token)
                     );                      );
                 } else {                  } elsif (($change_failed eq 'internalerror') || ($change_failed eq 'missingtemp') ||
                            ($change_failed eq 'error')) {
                     $r->print(&generic_failure_msg($contact_name,$contact_email));                      $r->print(&generic_failure_msg($contact_name,$contact_email));
                 }                  }
                 unless ($formfields{'username'}) {                  unless ($formfields{'username'}) {
Line 749  sub reset_passwd { Line 798  sub reset_passwd {
                     if ($needscase) {                      if ($needscase) {
                         $r->print(' '.&mt('User data entered must match LON-CAPA account information (including case).'));                          $r->print(' '.&mt('User data entered must match LON-CAPA account information (including case).'));
                     }                      }
                     $r->print(' ');                      $r->print('<br />');
                   }
                   my ($min,$max,$minrule,$maxrule);
                   if ($passwdconf->{min}) {
                       $min = $passwdconf->{min};
                   } else {
                       $min = $Apache::lonnet::passwdmin;
                   }
                   if ($min) {
                       $minrule = &mt('Minimum password length: [_1]',$min);
                   }
                   if ($passwdconf->{max}) {
                       $max = $passwdconf->{max};
                       $maxrule = &mt('Maximum password length: [_1]',$max);
                 }                  }
                 if (ref($passwdconf->{chars}) eq 'ARRAY') {                  if (ref($passwdconf->{chars}) eq 'ARRAY') {
                     my %rules;                      my %rules;
Line 766  sub reset_passwd { Line 828  sub reset_passwd {
                             $r->print('<li>'.$rulenames{$poss}.'</li>');                              $r->print('<li>'.$rulenames{$poss}.'</li>');
                         }                          }
                     }                      }
                       if ($min) {
                           $r->print('<li>'.$minrule.'</li>');
                       }
                       if ($max) {
                           $r->print('<li>'.$maxrule.'</li>');
                       }
                     $r->print('</ul>');                      $r->print('</ul>');
                 } else {                  } else {
                     $r->print(&mt('The new password must contain at least 7 characters.').' ');                      if ($min && $max) {
                           $r->print(&mt('The new password must satisfy the following:').'<ul>'."\n".
                                     '<li>'.$minrule.'</li>'."\n".
                                     '<li>'.$maxrule.'</li>'."\n".
                                     '</ul>'."\n");
                       } elsif ($min) {
                           $r->print($minrule.'<br />');
                       } elsif ($max) {
                           $r->print($maxrule.'<br />');
                       }
                 }                  }
                 $r->print(&mt('Your new password will be sent to the LON-CAPA server in an encrypted form.').'<br />');                  $r->print(&mt('Your new password will be sent to the LON-CAPA server in an encrypted form.').'<br />');
                 &Apache::lonpreferences::passwordchanger($r,'','reset_by_email',$token,$timelimit,\%formfields);                  &Apache::lonpreferences::passwordchanger($r,'','reset_by_email',$token,$timelimit,\%formfields);
Line 776  sub reset_passwd { Line 853  sub reset_passwd {
         } else {          } else {
             $r->print(              $r->print(
                 '<p class="LC_warning">'                  '<p class="LC_warning">'
                .&mt('Sorry, the token generated when you requested a password reset has expired. Please submit a [_1]new request[_2], and follow the link to the web page included in the new e-mail that will be sent to you, to allow you to enter a new password.'                 .&mt('Sorry, the token generated when you requested a password reset has expired.').'<br />'
                  .&mt('Please submit a [_1]new request[_2], and follow the link to the web page included in the new e-mail that will be sent to you, to allow you to enter a new password.'
                     ,'<a href="/adm/resetpw">','</a>')                      ,'<a href="/adm/resetpw">','</a>')
                .'</p>'                 .'</p>'
             );              );

Removed from v.1.46  
changed lines
  Added in v.1.47


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