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

version 1.751, 2006/06/19 21:05:51 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 = '';
             }              }
         }          }
     }      }

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


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