--- loncom/lonnet/perl/lonnet.pm 2012/05/16 21:19:33 1.1167 +++ loncom/lonnet/perl/lonnet.pm 2012/05/18 15:31:40 1.1168 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1167 2012/05/16 21:19:33 droeschl Exp $ +# $Id: lonnet.pm,v 1.1168 2012/05/18 15:31:40 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -4674,7 +4674,9 @@ sub rolesinit { my ($area,$role)=split(/=/,$entry); $area=~s/\_\w\w$//; 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]+)_(.*)$|) { ($trole,my $trest)=($role=~m|^(cr/$match_domain/$match_username/[a-zA-Z0-9]+)_(.*)$|); ($tend,$tstart)=split('_',$trest); @@ -4682,11 +4684,14 @@ sub rolesinit { $trole=$role; } } 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); next if ($tstart eq '-1'); ($trole,$group_privs) = split(/\//,$trole); $group_privs = &unescape($group_privs); } else { +# Just a normal role, defined in roles.tab ($trole,$tend,$tstart)=split(/_/,$role); } my %new_role = &set_arearole($trole,$area,$tstart,$tend,$domain, @@ -4698,10 +4703,13 @@ sub rolesinit { my $spec=$trole.'.'.$area; my ($tdummy,$tdomain,$trest)=split(/\//,$area); if ($trole =~ /^cr\//) { +# Custom role, defined by a user &custom_roleprivs(\%allroles,$trole,$tdomain,$trest,$spec,$area); } elsif ($trole eq 'gr') { +# Role of a member in a group, defined within a course/community &group_roleprivs(\%allgroups,$area,$group_privs,$tend,$tstart); } else { +# Normal role, defined in roles.tab &standard_roleprivs(\%allroles,$trole,$tdomain,$spec,$trest,$area); } if ($trole ne 'gr') {