version 1.205, 2008/09/02 02:56:52
|
version 1.206, 2008/09/03 04:28:22
|
Line 146 sub handler {
|
Line 146 sub handler {
|
# Is this an ad-hoc CA-role? |
# Is this an ad-hoc CA-role? |
if (my ($domain,$user) = |
if (my ($domain,$user) = |
($envkey =~ m-^form\.ca\./($match_domain)/($match_username)$-)) { |
($envkey =~ m-^form\.ca\./($match_domain)/($match_username)$-)) { |
# Check if author blocked ca-access |
if (($domain eq $env{'user.domain'}) && ($user eq $env{'user.name'})) { |
my %blocked=&Apache::lonnet::get('environment',['domcoord.author'],$domain,$user); |
delete($env{$envkey}); |
if ($blocked{'domcoord.author'} eq 'blocked') { |
$env{'form.au./'.$domain.'/'} = 1; |
my %roleshash = &Apache::lonnet::get_my_roles($user,$domain); |
my ($server_status,$home) = &check_author_homeserver($user,$domain); |
if (!defined($roleshash{$env{'user.name'}.':'.$env{'user.domain'}.':ca'})) { |
if ($server_status eq 'switchserver') { |
delete($env{$envkey}); |
my $trolecode = 'au./'.$domain.'/'; |
$env{'user.error.msg'}=':::1:User '.$user.' in domain '.$domain.' blocked domain coordinator access'; |
my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; |
|
$r->internal_redirect($switchserver); |
|
} |
|
last; |
|
} |
|
if (my ($castart,$caend) = ($env{'user.role.ca./'.$domain.'/'.$user} =~ /^(\d*)\.(\d*)$/)) { |
|
if (((($castart) && ($castart < $now)) || !$castart) && |
|
((!$caend) || (($caend) && ($caend > $now)))) { |
|
my ($server_status,$home) = &check_author_homeserver($user,$domain); |
|
if ($server_status eq 'switchserver') { |
|
my $trolecode = 'ca./'.$domain.'/'.$user; |
|
my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; |
|
$r->internal_redirect($switchserver); |
|
} |
last; |
last; |
} |
} |
} |
} |
|
# Check if author blocked ca-access |
|
my %blocked=&Apache::lonnet::get('environment',['domcoord.author'],$domain,$user); |
|
if ($blocked{'domcoord.author'} eq 'blocked') { |
|
delete($env{$envkey}); |
|
$env{'user.error.msg'}=':::1:User '.$user.' in domain '.$domain.' blocked domain coordinator access'; |
|
last; |
|
} |
if ($dcroles{$domain}) { |
if ($dcroles{$domain}) { |
my ($server_status,$home) = &check_author_homeserver($user,$domain); |
my ($server_status,$home) = &check_author_homeserver($user,$domain); |
if (($server_status eq 'ok') || ($server_status eq 'switchserver')) { |
if (($server_status eq 'ok') || ($server_status eq 'switchserver')) { |