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 = ''; |
} |
} |
} |
} |
} |
} |