version 1.319, 2016/10/27 21:06:00
|
version 1.320, 2016/10/27 22:51:08
|
Line 396 sub handler {
|
Line 396 sub handler {
|
} |
} |
if ($numdh) { |
if ($numdh) { |
# Is this an ad hoc custom role in a course/community? |
# Is this an ad hoc custom role in a course/community? |
if (my ($domain,$rolename,$coursenum) = ($envkey =~ m{^form\.cr/($match_domain)/\1\-domainconfig/(\w+)\./\1/($match_courseid)$})) { |
if (my ($domain,$rolename,$coursenum) = ($envkey =~ m{^form\.cr/($match_domain)/\1\-domainconfig/(\w+)\./\1/($match_courseid)$})) { |
if ($dhroles{$domain}) { |
if ($dhroles{$domain}) { |
my @adhoc; |
my @adhoc; |
if ($env{'environment.adhocroles.'.$domain}) { |
if ($env{'environment.adhocroles.'.$domain}) { |
@adhoc = split(',',$env{'environment.adhocroles.'.$domain}); |
@adhoc = split(',',$env{'environment.adhocroles.'.$domain}); |
} else { |
} else { |
my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'}, |
my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'}, |
'adhocroles.'.$domain); |
'adhocroles.'.$domain); |
if (keys(%adhocroles)) { |
if (keys(%adhocroles)) { |
@adhoc = split(',',$adhocroles{'adhocroles.'.$domain}); |
@adhoc = split(',',$adhocroles{'adhocroles.'.$domain}); |
}; |
} |
} |
} |
if ((@adhoc > 0) && ($rolename ne '')) { |
if ((@adhoc > 0) && ($rolename ne '')) { |
if (grep(/^\Q$rolename\E$/,@adhoc)) { |
if (grep(/^\Q$rolename\E$/,@adhoc)) { |
if (&Apache::lonnet::check_adhoc_privs($domain,$coursenum,$update,$refresh,$now, |
if (&Apache::lonnet::check_adhoc_privs($domain,$coursenum,$update,$refresh,$now, |
"cr/$domain/$domain".'-domainconfig/'.$rolename)) { |
"cr/$domain/$domain".'-domainconfig/'.$rolename)) { |
&Apache::lonnet::appenv({"environment.internal.$domain.$coursenum.cr/$domain/$domain". |
&Apache::lonnet::appenv({"environment.internal.$domain.$coursenum.cr/$domain/$domain". |
'-domainconfig/'."$rolename.adhoc" => time}); |
'-domainconfig/'."$rolename.adhoc" => time}); |
} |
} |
} else { |
} else { |
delete($env{$envkey}); |
delete($env{$envkey}); |
} |
} |
} else { |
} else { |
delete($env{$envkey}); |
delete($env{$envkey}); |
} |
} |
} else { |
} else { |
delete($env{$envkey}); |
delete($env{$envkey}); |
} |
} |
last; |
last; |
} |
} |
} |
} |
} |
} |
} |
} |
foreach $envkey (keys(%env)) { |
foreach $envkey (keys(%env)) { |
next if ($envkey!~/^user\.role\./); |
next if ($envkey!~/^user\.role\./); |