version 1.756, 2006/06/22 14:48:40
|
version 1.757, 2006/06/22 15:34:16
|
Line 4706 sub get_access_controls {
|
Line 4706 sub get_access_controls {
|
return %access; |
return %access; |
} |
} |
|
|
sub parse_access_controls { |
|
my ($access_item) = @_; |
|
my %content; |
|
my $role_id; |
|
my $user; |
|
my $usercount; |
|
my $token; |
|
my $parser=HTML::TokeParser->new(\$access_item); |
|
while ($token=$parser->get_token) { |
|
if ($token->[0] eq 'S') { |
|
my $entry=$token->[1]; |
|
if ($entry eq 'scope') { |
|
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 { |
|
my $value=$parser->get_text('/'.$entry); |
|
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 = ''; |
|
} |
|
} |
|
} |
|
return %content; |
|
} |
|
|
|
sub modify_access_controls { |
sub modify_access_controls { |
my ($file_name,$changes,$domain,$user)=@_; |
my ($file_name,$changes,$domain,$user)=@_; |
my ($outcome,$deloutcome); |
my ($outcome,$deloutcome); |