Diff for /loncom/auth/lonroles.pm between versions 1.358 and 1.359

version 1.358, 2021/11/30 14:16:13 version 1.359, 2021/11/30 15:55:40
Line 277  sub handler { Line 277  sub handler {
         $update = $then;          $update = $then;
     }      }
   
     my ($norolelist,$blocked_by_ip,$blocked_type,$blocked_ipaddr);      my ($norolelist,$blocked_by_ip,$blocked_type,$clientip);
       $clientip = &Apache::lonnet::get_requestor_ip($r);
     if (($env{'request.course.id'}) && ($env{'request.deeplink.login'})) {      if (($env{'request.course.id'}) && ($env{'request.deeplink.login'})) {
         my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};          my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
         my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};          my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
Line 358  sub handler { Line 359  sub handler {
                         $ipaccessref = &Apache::lonnet::do_cache_new('ipaccess',$cdom,$domconfig{'ipaccess'},1800);                          $ipaccessref = &Apache::lonnet::do_cache_new('ipaccess',$cdom,$domconfig{'ipaccess'},1800);
                     }                      }
                     if (ref($ipaccessref) eq 'HASH') {                      if (ref($ipaccessref) eq 'HASH') {
                         my $remote_ip = &Apache::lonnet::get_requestor_ip();  
                         foreach my $id (keys(%{$ipaccessref})) {                          foreach my $id (keys(%{$ipaccessref})) {
                             if (ref($ipaccessref->{$id}) eq 'HASH') {                              if (ref($ipaccessref->{$id}) eq 'HASH') {
                                 my $range = $ipaccessref->{$id}->{'ip'};                                  my $range = $ipaccessref->{$id}->{'ip'};
                                 if ($range) {                                  if ($range) {
                                     my $type = 'exclude';                                      my $type = 'exclude';
                                     if (&Apache::lonnet::ip_match($remote_ip,$range)) {                                      if (&Apache::lonnet::ip_match($clientip,$range)) {
                                         $type = 'include';                                          $type = 'include';
                                     }                                      }
                                     if (ref($ipaccessref->{$id}->{'courses'}) eq 'HASH') {                                      if (ref($ipaccessref->{$id}->{'courses'}) eq 'HASH') {
Line 386  sub handler { Line 386  sub handler {
                                 }                                  }
                             }                              }
                         }                          }
                         unless ($showrole) {  
                             $blocked_ipaddr = $remote_ip;  
                         }  
                     }                      }
                 }                  }
             }              }
Line 783  ENDCLOSE Line 780  ENDCLOSE
                         $r->rflush();                          $r->rflush();
                         my ($msg,$blockcrit,$critmsg_check);                          my ($msg,$blockcrit,$critmsg_check);
                         $critmsg_check = 1;                          $critmsg_check = 1;
                         $blockcrit = &Apache::loncommon::blocking_status('alert',$cnum,$cdom,undef,1);                          $blockcrit = &Apache::loncommon::blocking_status('alert',$clientip,$cnum,$cdom,undef,1);
                         if ($blockcrit) {                          if ($blockcrit) {
                             my $checkrole = "cm./$cdom/$cnum";                              my $checkrole = "cm./$cdom/$cnum";
                             if ($csec ne '') {                              if ($csec ne '') {
Line 1354  ENDHEADER Line 1351  ENDHEADER
             }              }
             $r->print('<h3><span class="LC_error">'.              $r->print('<h3><span class="LC_error">'.
                       &mt('The [_1] you selected is not available for access with a [_2] role from your current IP address: [_3].',                        &mt('The [_1] you selected is not available for access with a [_2] role from your current IP address: [_3].',
                           lc($blocked_type),$blocked_role,$blocked_ipaddr).                            lc($blocked_type),$blocked_role,$clientip).
                       '</span></h3>');                        '</span></h3>');
         }          }
     }      }

Removed from v.1.358  
changed lines
  Added in v.1.359


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