Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.561 and 1.563

version 1.561, 2004/11/04 23:43:07 version 1.563, 2004/11/08 18:04:17
Line 3798  sub mark_as_readonly { Line 3798  sub mark_as_readonly {
 sub get_marked_as_readonly {  sub get_marked_as_readonly {
     my ($domain,$user,$what) = @_;      my ($domain,$user,$what) = @_;
     my %current_permissions = &Apache::lonnet::dump('file_permissions',$domain,$user);      my %current_permissions = &Apache::lonnet::dump('file_permissions',$domain,$user);
     my @readonly_files = [];      my @readonly_files;
     while ((my $file_name, my $value) = each %current_permissions) {      while (my ($file_name,$value) = each(%current_permissions)) {
           &logthis("found $file_name");
         if (ref($value) eq "ARRAY"){          if (ref($value) eq "ARRAY"){
               &logthis("found array");
             foreach my $stored_what (@{$value}) {              foreach my $stored_what (@{$value}) {
                 if ($stored_what eq $what) {                  if ($stored_what eq $what) {
                     push(@readonly_files, $file_name);                      push(@readonly_files, $file_name);
                       &logthis("defined pushed $file_name");
                   } elsif (!defined($what)) {
                       push(@readonly_files, $file_name);
                       &logthis("undef pushed $file_name");
                 }                  }
             }              }
         }           } 
Line 3820  sub unmark_as_readonly { Line 3826  sub unmark_as_readonly {
     my %current_permissions = &Apache::lonnet::dump('file_permissions',$domain,$user);      my %current_permissions = &Apache::lonnet::dump('file_permissions',$domain,$user);
     my @readonly_files = &Apache::lonnet::get_marked_as_readonly($domain,$user,$what);      my @readonly_files = &Apache::lonnet::get_marked_as_readonly($domain,$user,$what);
     foreach my $file(@readonly_files){      foreach my $file(@readonly_files){
                   my $current_locks = $current_permissions{$file};
           my @new_locks;
           my @del_keys;
           if (ref($current_locks) eq "ARRAY"){
               foreach my $locker (@{$current_locks}) {
                   unless ($locker eq $what) {
                       push(@new_locks, $what);
                   }
               }
               if (@new_locks > 0) {
                   $current_permissions{$file} = \@new_locks;
               } else {
                   push(@del_keys, $file);
                   &Apache::lonnet::del('file_permissions',\@del_keys, $domain, $user);
                   delete $current_permissions{$file};
               }
           }
     }      }
     &Apache::lonnet::put('file_permissions',\%current_permissions,$domain,$user);      &Apache::lonnet::put('file_permissions',\%current_permissions,$domain,$user);
     return;      return;
Line 4867  sub get_rand_alg { Line 4889  sub get_rand_alg {
     return &latest_rnd_algorithm_id();      return &latest_rnd_algorithm_id();
 }  }
   
   sub validCODE {
       my ($CODE)=@_;
       if (defined($CODE) && $CODE ne '' && $CODE =~ /^\w+$/) { return 1; }
       return 0;
   }
   
 sub getCODE {  sub getCODE {
     if (defined($ENV{'form.CODE'})) { return $ENV{'form.CODE'}; }      if (&validCODE($ENV{'form.CODE'})) { return $ENV{'form.CODE'}; }
     if (defined($Apache::lonhomework::parsing_a_problem) &&      if (defined($Apache::lonhomework::parsing_a_problem) &&
  defined($Apache::lonhomework::history{'resource.CODE'})) {   &validCODE($Apache::lonhomework::history{'resource.CODE'})) {
  return $Apache::lonhomework::history{'resource.CODE'};   return $Apache::lonhomework::history{'resource.CODE'};
     }      }
     return undef;      return undef;

Removed from v.1.561  
changed lines
  Added in v.1.563


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