Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.749 and 1.752

version 1.749, 2006/06/16 22:37:35 version 1.752, 2006/06/22 13:06:50
Line 4696  sub get_access_controls { Line 4696  sub get_access_controls {
 sub parse_access_controls {  sub parse_access_controls {
     my ($access_item) = @_;      my ($access_item) = @_;
     my %content;      my %content;
       my $role_id;
       my $user;
       my $usercount;
     my $token;      my $token;
     my $parser=HTML::TokeParser->new(\$access_item);      my $parser=HTML::TokeParser->new(\$access_item);
     while ($token=$parser->get_token) {      while ($token=$parser->get_token) {
Line 4703  sub parse_access_controls { Line 4706  sub parse_access_controls {
             my $entry=$token->[1];              my $entry=$token->[1];
             if ($entry eq 'scope') {              if ($entry eq 'scope') {
                 my $type = $token->[2]{'type'};                  my $type = $token->[2]{'type'};
                   if (($type eq 'course') || ($type eq 'group')) {
                       %{$content{'roles'}} = ();
                   }
               } elsif ($entry eq 'roles') {
                   $role_id = $token->[2]{id};
                   %{$content{$entry}{$role_id}} = (
                                                    role => [],
                                                    access => [],
                                                    section => [],
                                                    group => [],
                                                   );
               } elsif ($entry eq 'users') {
                   %{$content{'users'}} = ();
                   $usercount = 0;
               } elsif ($entry eq 'user') {
                   $user = '';
             } else {              } else {
                 my $value=$parser->get_text('/'.$entry);                  my $value=$parser->get_text('/'.$entry);
                 $content{$entry}=$value;                  if ($entry eq 'uname') {
                       $user = $value;
                   } elsif ($entry eq 'udom') {
                       $user .= ':'.$value;
                       $content{'users'}{$user} = $usercount;
                   } elsif ($entry eq 'role' ||
                       $entry eq 'access' ||
                       $entry eq 'section' ||
                       $entry eq 'group') {
                       if ($role_id ne '') {
                           push(@{$content{'roles'}{$role_id}{$entry}},$value);
                       }
                   } elsif ($entry eq 'dom') {
                       push(@{$content{$entry}},$value);
                   } else {
                       $content{$entry}=$value;
                   }
               }
           } elsif ($token->[0] eq 'E') {
               if ($token->[1] eq 'user') {
                   $user = '';
                   $usercount ++;
               } elsif ($token->[1] eq 'roles') {
                   $role_id = '';
             }              }
         }          }
     }      }
Line 4846  sub get_marked_as_readonly_hash { Line 4888  sub get_marked_as_readonly_hash {
         if (ref($value) eq "ARRAY"){          if (ref($value) eq "ARRAY"){
             foreach my $stored_what (@{$value}) {              foreach my $stored_what (@{$value}) {
                 if (ref($stored_what) eq 'ARRAY') {                  if (ref($stored_what) eq 'ARRAY') {
                     if ($stored_what eq $what) {                      foreach my $lock_descriptor(@{$stored_what}) {
                         $readonly_files{$file_name} = 'locked';                          if ($lock_descriptor eq 'graded') {
                     } elsif (!defined($what)) {                              $readonly_files{$file_name} = 'graded';
                         $readonly_files{$file_name} = 'locked';                          } elsif ($lock_descriptor eq 'handback') {
                               $readonly_files{$file_name} = 'handback';
                           } else {
                               if (!exists($readonly_files{$file_name})) {
                                   $readonly_files{$file_name} = 'locked';
                               }
                           }
                     }                      }
                 }                  } 
             }              }
         }           } 
     }      }

Removed from v.1.749  
changed lines
  Added in v.1.752


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