version 1.749, 2006/06/16 22:37:35
|
version 1.753, 2006/06/22 13:16:09
|
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'; |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |