Diff for /loncom/homework/lonhomework.pm between versions 1.138.2.1 and 1.139

version 1.138.2.1, 2003/10/15 22:18:26 version 1.139, 2003/09/09 13:32:25
Line 69  sub get_target { Line 69  sub get_target {
     } elsif ( defined($ENV{'form.grade_target'}  )       } elsif ( defined($ENV{'form.grade_target'}  ) 
  && ($Apache::lonhomework::viewgrades eq 'F' )) {   && ($Apache::lonhomework::viewgrades eq 'F' )) {
       return ($ENV{'form.grade_target'});        return ($ENV{'form.grade_target'});
       } elsif (defined($ENV{'form.grade_target'}  ) 
    && ($ENV{'form.grade_target'} eq 'answer')) {
         return ($ENV{'form.grade_target'});
     }      }
     
     if ( defined($ENV{'form.submitted'}) &&      if ( defined($ENV{'form.submitted'}) &&
Line 146  sub send_footer { Line 149  sub send_footer {
   
 $Apache::lonxml::browse='';  $Apache::lonxml::browse='';
   
 sub check_ip_acc {  
     my ($acc)=@_;  
     if (!defined($acc) || $acc =~ /^\s*$/) { return 1; }  
     my $allowed=0;  
     my $ip=$ENV{'REMOTE_ADDR'};  
     my $name;  
     foreach my $pattern (split(',',$acc)) {  
  if ($pattern =~ /\*$/) {  
     #35.8.*  
     $pattern=~s/\*//;  
     if ($ip =~ /^\Q$pattern\E/) { $allowed=1; }  
  } elsif ($pattern =~ /(\d+\.\d+\.\d+)\.\[(\d+)-(\d+)\]$/) {      
     #35.8.3.[34-56]  
     my $low=$2;  
     my $high=$3;  
     $pattern=$1;  
     if ($ip =~ /^\Q$pattern\E/) {   
  my $last=(split(/\./,$ip))[3];  
  if ($last <=$high && $last >=$low) { $allowed=1; }  
     }  
  } elsif ($pattern =~ /^\*/) {  
     #*.msu.edu  
     $pattern=~s/\*//;  
     if (!defined($name)) {  
  use Socket;  
  my $netaddr=inet_aton($ip);  
  ($name)=gethostbyaddr($netaddr,AF_INET);  
  }  
     if ($name =~ /\Q$pattern\E$/i) { $allowed=1; }  
  } elsif ($pattern =~ /\d+\.\d+\.\d+\.\d+/) {  
     #127.0.0.1  
     if ($ip =~ /^\Q$pattern\E/) { $allowed=1; }  
  } else {  
     #some.name.com  
     if (!defined($name)) {  
  use Socket;  
  my $netaddr=inet_aton($ip);  
  ($name)=gethostbyaddr($netaddr,AF_INET);  
     }  
     if ($name =~ /\Q$pattern\E$/i) { $allowed=1; }  
  }  
  if ($allowed) { last; }  
     }  
     return $allowed;  
 }  
 # JB, 9/24/2002: Any changes in this function may require a change  # JB, 9/24/2002: Any changes in this function may require a change
 # in lonnavmaps::resource::getDateStatus.  # in lonnavmaps::resource::getDateStatus.
 sub check_access {  sub check_access {
Line 212  sub check_access { Line 170  sub check_access {
   
   &Apache::lonxml::debug("checking for part :$id:");    &Apache::lonxml::debug("checking for part :$id:");
   &Apache::lonxml::debug("time:".time);    &Apache::lonxml::debug("time:".time);
       
     my $allowed=&check_ip_acc(&Apache::lonnet::EXT("resource.$id.acc"));  
     if (!$allowed) {  
  $status='INVALID_ACCESS';  
  $date=&mt("can not be accessed from your location.");  
  return($status,$date);  
     }  
   
   foreach $temp ("opendate","duedate","answerdate") {    foreach $temp ("opendate","duedate","answerdate") {
     $lastdate = $date;      $lastdate = $date;
     $date = &Apache::lonnet::EXT("resource.$id.$temp");      $date = &Apache::lonnet::EXT("resource.$id.$temp");

Removed from v.1.138.2.1  
changed lines
  Added in v.1.139


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