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

version 1.205, 2008/09/02 02:56:52 version 1.207, 2008/10/02 14:34:03
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')) {
Line 722  ENDHEADER Line 742  ENDHEADER
         }          }
         $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
  return OK;   return OK;
 # Is there only one choice?  
     } elsif ($countactive==1) {  
         my $needs_switchserver;  
         if ($env{'user.author'}) {  
             $needs_switchserver = &check_needs_switchserver($possiblerole);  
         }  
         if ((!$needs_switchserver) && ($env{'request.role'} eq 'cm')) {  
     $r->print('<h3>'.&mt('Please stand by.').'</h3>'.  
         '<input type="hidden" name="'.$possiblerole.'" value="1" />'.  
             '<noscript><br /><input type="submit" name="submit" value="'.&mt('Continue').'" /></noscript>');  
     $r->print("</form>\n");  
     $r->rflush();  
     $r->print('<script type="text/javascript">document.forms.rolechoice.submit();</script>');  
     $r->print(&Apache::loncommon::end_page());  
     return OK;  
         }  
         if ($needs_switchserver) {  
             $r->print("<h2>".&mt('Server Switch Required')."</h2>\n".  
                       &mt('Construction Space access is only available from '.  
                           'the home server of the corresponding Author.').'<br />'.  
                       &mt("Click the 'Switch Server' link to go there.").'<br />');     
         }  
     }      }
 # More than one possible role  
 # ----------------------------------------------------------------------- Table  # ----------------------------------------------------------------------- Table
     unless ((!&Apache::lonmenu::show_course()) || ($nochoose) || ($countactive==1)) {      unless ((!&Apache::lonmenu::show_course()) || ($nochoose) || ($countactive==1)) {
  $r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n");   $r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n");

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


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