Diff for /loncom/auth/lonroles.pm between versions 1.205 and 1.206

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')) {

Removed from v.1.205  
changed lines
  Added in v.1.206


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>