version 1.1167, 2012/05/16 21:19:33
|
version 1.1168, 2012/05/18 15:31:40
|
Line 4674 sub rolesinit {
|
Line 4674 sub rolesinit {
|
my ($area,$role)=split(/=/,$entry); |
my ($area,$role)=split(/=/,$entry); |
$area=~s/\_\w\w$//; |
$area=~s/\_\w\w$//; |
my ($trole,$tend,$tstart,$group_privs); |
my ($trole,$tend,$tstart,$group_privs); |
if ($role=~/^cr/) { |
if ($role=~/^cr/) { |
|
# Custom role, defined by a user |
|
# e.g., user.role.cr/msu/smith/mynewrole |
if ($role=~m|^(cr/$match_domain/$match_username/[a-zA-Z0-9]+)_(.*)$|) { |
if ($role=~m|^(cr/$match_domain/$match_username/[a-zA-Z0-9]+)_(.*)$|) { |
($trole,my $trest)=($role=~m|^(cr/$match_domain/$match_username/[a-zA-Z0-9]+)_(.*)$|); |
($trole,my $trest)=($role=~m|^(cr/$match_domain/$match_username/[a-zA-Z0-9]+)_(.*)$|); |
($tend,$tstart)=split('_',$trest); |
($tend,$tstart)=split('_',$trest); |
Line 4682 sub rolesinit {
|
Line 4684 sub rolesinit {
|
$trole=$role; |
$trole=$role; |
} |
} |
} elsif ($role =~ m|^gr/|) { |
} elsif ($role =~ m|^gr/|) { |
|
# Role of member in a group, defined within a course/community |
|
# e.g., user.role.gr/msu/04935610a19ee4a5fmsul1/leopards |
($trole,$tend,$tstart) = split(/_/,$role); |
($trole,$tend,$tstart) = split(/_/,$role); |
next if ($tstart eq '-1'); |
next if ($tstart eq '-1'); |
($trole,$group_privs) = split(/\//,$trole); |
($trole,$group_privs) = split(/\//,$trole); |
$group_privs = &unescape($group_privs); |
$group_privs = &unescape($group_privs); |
} else { |
} else { |
|
# Just a normal role, defined in roles.tab |
($trole,$tend,$tstart)=split(/_/,$role); |
($trole,$tend,$tstart)=split(/_/,$role); |
} |
} |
my %new_role = &set_arearole($trole,$area,$tstart,$tend,$domain, |
my %new_role = &set_arearole($trole,$area,$tstart,$tend,$domain, |
Line 4698 sub rolesinit {
|
Line 4703 sub rolesinit {
|
my $spec=$trole.'.'.$area; |
my $spec=$trole.'.'.$area; |
my ($tdummy,$tdomain,$trest)=split(/\//,$area); |
my ($tdummy,$tdomain,$trest)=split(/\//,$area); |
if ($trole =~ /^cr\//) { |
if ($trole =~ /^cr\//) { |
|
# Custom role, defined by a user |
&custom_roleprivs(\%allroles,$trole,$tdomain,$trest,$spec,$area); |
&custom_roleprivs(\%allroles,$trole,$tdomain,$trest,$spec,$area); |
} elsif ($trole eq 'gr') { |
} elsif ($trole eq 'gr') { |
|
# Role of a member in a group, defined within a course/community |
&group_roleprivs(\%allgroups,$area,$group_privs,$tend,$tstart); |
&group_roleprivs(\%allgroups,$area,$group_privs,$tend,$tstart); |
} else { |
} else { |
|
# Normal role, defined in roles.tab |
&standard_roleprivs(\%allroles,$trole,$tdomain,$spec,$trest,$area); |
&standard_roleprivs(\%allroles,$trole,$tdomain,$spec,$trest,$area); |
} |
} |
if ($trole ne 'gr') { |
if ($trole ne 'gr') { |