Diff for /loncom/interface/resetpw.pm between versions 1.48 and 1.51

version 1.48, 2020/12/18 15:23:02 version 1.51, 2021/11/30 16:08:44
Line 115  sub handler { Line 115  sub handler {
         }          }
     }      }
     my %passwdconf = &Apache::lonnet::get_passwdconf($dom_in_effect);      my %passwdconf = &Apache::lonnet::get_passwdconf($dom_in_effect);
       my $clientip = &Apache::lonnet::get_requestor_ip($r);
     my $token = $env{'form.token'};      my $token = $env{'form.token'};
     my $useremail = $env{'form.useremail'};      my $useremail = $env{'form.useremail'};
     if (($udom ne '') && (!$otherinst) && (!$token)) {      if (($udom ne '') && (!$otherinst) && (!$token)) {
Line 292  END Line 293  END
     my $output;      my $output;
     if ($token) {      if ($token) {
         $r->print($header);          $r->print($header);
         &reset_passwd($r,$token,$contact_name,$contact_email,\%passwdconf);          &reset_passwd($r,$token,$contact_name,$contact_email,$clientip,\%passwdconf);
         $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
         return OK;          return OK;
     } elsif ($udom) {      } elsif ($udom) {
Line 300  END Line 301  END
             $output = &invalid_state('baddomain',$domdesc,              $output = &invalid_state('baddomain',$domdesc,
                                      $contact_name,$contact_email);                                        $contact_name,$contact_email); 
         } elsif ($otherinst) {          } elsif ($otherinst) {
             ($header,$output) = &homeserver_redirect($uname,$udom,$domdesc,$brcrum);              ($header,$output) = &homeserver_redirect($r,$uname,$udom,$domdesc,$brcrum);
         } elsif (($uname) || ($useremail)) {          } elsif (($uname) || ($useremail)) {
             my $earlyout;              my $earlyout;
             unless ($passwdconf{'captcha'} eq 'unused') {              unless ($passwdconf{'captcha'} eq 'unused') {
Line 327  END Line 328  END
                 my $authtype = &Apache::lonnet::queryauthenticate($uname,$udom);                  my $authtype = &Apache::lonnet::queryauthenticate($uname,$udom);
                 if ($authtype =~ /^internal/) {                  if ($authtype =~ /^internal/) {
                     my ($blocked,$blocktext) =                      my ($blocked,$blocktext) =
                         &Apache::loncommon::blocking_status('passwd',$uname,$udom);                          &Apache::loncommon::blocking_status('passwd',$clientip,$uname,$udom);
                     if ($blocked) {                      if ($blocked) {
                         $output = '<p class="LC_warning">'.$blocktext.'</p>'                          $output = '<p class="LC_warning">'.$blocktext.'</p>'
                                   .&display_actions($contact_email,$domdesc);                                    .&display_actions($contact_email,$domdesc);
Line 579  sub invalid_state { Line 580  sub invalid_state {
 }  }
   
 sub homeserver_redirect {  sub homeserver_redirect {
     my ($uname,$udom,$domdesc,$brcrum) = @_;      my ($r,$uname,$udom,$domdesc,$brcrum) = @_;
     my $uhome;      my $uhome;
     if (($uname ne '') && ($udom ne '')) {      if (($uname ne '') && ($udom ne '')) {
         $uhome = &Apache::lonnet::homeserver($uname,$udom);          $uhome = &Apache::lonnet::homeserver($uname,$udom);
Line 590  sub homeserver_redirect { Line 591  sub homeserver_redirect {
     my $hostname = &Apache::lonnet::hostname($uhome);      my $hostname = &Apache::lonnet::hostname($uhome);
     my $protocol = $Apache::lonnet::protocol{$uhome};      my $protocol = $Apache::lonnet::protocol{$uhome};
     $protocol = 'http' if ($protocol ne 'https');      $protocol = 'http' if ($protocol ne 'https');
       my $alias = &Apache::lonnet::use_proxy_alias($r,$uhome);
       $hostname = $alias if ($alias ne '');
     my $url = $protocol.'://'.$hostname.'/adm/resetpw';      my $url = $protocol.'://'.$hostname.'/adm/resetpw';
     # Breadcrumbs      # Breadcrumbs
     my $start_page = &Apache::loncommon::start_page('Switching Server',undef,      my $start_page = &Apache::loncommon::start_page('Switching Server',undef,
Line 602  sub homeserver_redirect { Line 605  sub homeserver_redirect {
 }  }
   
 sub reset_passwd {  sub reset_passwd {
     my ($r,$token,$contact_name,$contact_email,$passwdconf) = @_;      my ($r,$token,$contact_name,$contact_email,$clientip,$passwdconf) = @_;
     return unless (ref($passwdconf) eq 'HASH');      return unless (ref($passwdconf) eq 'HASH');
     my %data = &Apache::lonnet::tmpget($token);      my %data = &Apache::lonnet::tmpget($token);
     my $now = time;      my $now = time;
Line 623  sub reset_passwd { Line 626  sub reset_passwd {
         }          }
         my $reqtime = &Apache::lonlocal::locallocaltime($data{'time'});          my $reqtime = &Apache::lonlocal::locallocaltime($data{'time'});
         my ($blocked,$blocktext) =          my ($blocked,$blocktext) =
             &Apache::loncommon::blocking_status('passwd',$data{'username'},$data{'domain'});              &Apache::loncommon::blocking_status('passwd',$clientip,$data{'username'},$data{'domain'});
         if ($blocked) {          if ($blocked) {
             $r->print('<p class="LC_warning">'.$blocktext.'</p>');              $r->print('<p class="LC_warning">'.$blocktext.'</p>');
             return;              return;
Line 755  sub reset_passwd { Line 758  sub reset_passwd {
                         my $hostname = &Apache::lonnet::hostname($homeserver);                          my $hostname = &Apache::lonnet::hostname($homeserver);
                         my $protocol = $Apache::lonnet::protocol{$homeserver};                          my $protocol = $Apache::lonnet::protocol{$homeserver};
                         $protocol = 'http' if ($protocol ne 'https');                          $protocol = 'http' if ($protocol ne 'https');
                           my $alias = &Apache::lonnet::use_proxy_alias($r,$homeserver);
                           $hostname = $alias if ($alias ne '');
                         my $url = $protocol.'://'.$hostname.'/adm/resetpw';                          my $url = $protocol.'://'.$hostname.'/adm/resetpw';
                         my ($opentag,$closetag);                          my ($opentag,$closetag);
                         if ($url) {                          if ($url) {

Removed from v.1.48  
changed lines
  Added in v.1.51


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