Diff for /loncom/auth/lonroles.pm between versions 1.330 and 1.336

version 1.330, 2017/05/19 19:20:42 version 1.336, 2018/01/09 15:44:43
Line 204  sub handler { Line 204  sub handler {
     my $r = shift;      my $r = shift;
   
     # Check for critical messages and redirect if present.      # Check for critical messages and redirect if present.
     my ($redirect,$url) = &Apache::loncommon::critical_redirect(300);      my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'roles');
     if ($redirect) {      if ($redirect) {
         &Apache::loncommon::content_type($r,'text/html');          &Apache::loncommon::content_type($r,'text/html');
         $r->header_out(Location => $url);          $r->header_out(Location => $url);
Line 578  ENDENTERKEY Line 578  ENDENTERKEY
  my ($furl,$ferr)=   my ($furl,$ferr)=
     &Apache::lonuserstate::readmap($cdom.'/'.$cnum);      &Apache::lonuserstate::readmap($cdom.'/'.$cnum);
                         unless ($ferr) {                          unless ($ferr) {
                               &Apache::lonnet::appenv({'request.course.timechecked'=>$now});
                             unless (($env{'form.switchrole'}) ||                               unless (($env{'form.switchrole'}) || 
                                     ($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) {                                      ($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) {
                                 &Apache::lonnet::put('nohist_crslastlogin',                                  &Apache::lonnet::put('nohist_crslastlogin',
                                     {$env{'user.name'}.':'.$env{'user.domain'}.                                      {$env{'user.name'}.':'.$env{'user.domain'}.
                                      ':'.$csec.':'.$role => $now},$cdom,$cnum);                                       ':'.$csec.':'.$role => $now},$cdom,$cnum);
                             }                              }
                               if (($env{"environment.internal.$cdom.$cnum.$role.adhoc"}) &&
                                   (&Apache::lonnet::allowed('vxc',$cdom.'_'.$cnum))) {
                                   my $owner = $env{'course.'.$cdom.'_'.$cnum.'.internal.courseowner'};
                                   my @coowners = split(/,/,$env{'course.'.$env{'request.course.id'}.'.internal.co-owners'});
                                   my %auaccess;
                                   foreach my $user ($owner,@coowners) {
                                       my ($cpname,$cpdom) = split(/:/,$user);
                                       my %auroles = &Apache::lonnet::get_my_roles($cpname,$cpdom,'userroles',undef,['au','ca','aa'],[$cdom]);
                                       foreach my $key (keys(%auroles)) {
                                           my ($auname,$audom,$aurole) = split(/:/,$key);
                                           if ($aurole eq 'au') {
                                               $auaccess{$cpname} = 1;
                                           } else {
                                               $auaccess{$auname} = 1;
                                           }
                                       }
                                   }
                                   &Apache::lonnet::appenv({'request.course.adhocsrcaccess' => join(',',sort(keys(%auaccess))) });
                               }
                             my ($feeds,$syllabus_time);                              my ($feeds,$syllabus_time);
                             &Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds);                              &Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds);
                             &Apache::lonnet::appenv({'request.course.feeds' => $feeds});                              &Apache::lonnet::appenv({'request.course.feeds' => $feeds});
Line 1240  sub gather_roles { Line 1260  sub gather_roles {
     my $advanced = $env{'user.adv'};      my $advanced = $env{'user.adv'};
     my $tryagain = $env{'form.tryagain'};      my $tryagain = $env{'form.tryagain'};
     my @ids = &Apache::lonnet::current_machine_ids();      my @ids = &Apache::lonnet::current_machine_ids();
       my (%willtrust,%trustchecked);
     if (ref($roles_in_env) eq 'HASH') {      if (ref($roles_in_env) eq 'HASH') {
         my %adhocdesc;          my %adhocdesc;
         foreach my $envkey (sort(keys(%{$roles_in_env}))) {          foreach my $envkey (sort(keys(%{$roles_in_env}))) {
Line 1308  sub gather_roles { Line 1329  sub gather_roles {
                 if (($role eq 'ca') || ($role eq 'aa')) {                  if (($role eq 'ca') || ($role eq 'aa')) {
                     my $home = &Apache::lonnet::homeserver($trest,$tdom);                      my $home = &Apache::lonnet::homeserver($trest,$tdom);
                     my $allowed=0;                      my $allowed=0;
                       my $prohibited;
                     foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }                      foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
                     if (!$allowed) {                      if (!$allowed) {
                         $button=0;                          $button=0;
                         $switchserver='otherserver='.$home.'&role='.$trolecode;                          unless ($trustchecked{$tdom}) {
                               if ((&Apache::lonnet::will_trust('othcoau',$tdom,$env{'user.domain'})) &&
                                   (&Apache::lonnet::will_trust('coremau',$env{'user.domain'},$tdom))) {
                                   $willtrust{$tdom} = 1;
                                   $trustchecked{$tdom} = 1;
                               }
                           } 
                           if ($willtrust{$tdom}) {
                               $switchserver='otherserver='.$home.'&role='.$trolecode;
                           } else {
                               $prohibited = 1;
                               $tremark .= &mt('Session switch required but prohibited.');
                           }
                     }                      }
                     #next if ($home eq 'no_host');                      #next if ($home eq 'no_host');
                     $home = &Apache::lonnet::hostname($home);                      $home = &Apache::lonnet::hostname($home);
Line 1320  sub gather_roles { Line 1354  sub gather_roles {
                         ': '.$tdom.'<br />'.                          ': '.$tdom.'<br />'.
                         ' '.&mt('Server').':&nbsp;'.$home;                          ' '.&mt('Server').':&nbsp;'.$home;
                     $env{'course.'.$tdom.'_'.$trest.'.description'}='ca';                      $env{'course.'.$tdom.'_'.$trest.'.description'}='ca';
                     $tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$trest.'/');                      unless ($prohibited) {
                           $tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$trest.'/');
                       }
                     $sortkey=$role."$trest:$tdom";                      $sortkey=$role."$trest:$tdom";
                 } elsif ($role eq 'au') {                  } elsif ($role eq 'au') {
                     # Authors                      # Authors
Line 1599  sub findcourse_advice { Line 1635  sub findcourse_advice {
  <li>'.&mt('You are in a section of course for which automatic enrollment in the corresponding LON-CAPA course is not active.').'</li>   <li>'.&mt('You are in a section of course for which automatic enrollment in the corresponding LON-CAPA course is not active.').'</li>
  <li>'.&mt('The start date for automated enrollment has yet to be reached.').'</li>   <li>'.&mt('The start date for automated enrollment has yet to be reached.').'</li>
  <li>'.&mt('You registered for the course recently and there is a time lag between the time you register, and the time this information becomes available for the update of LON-CAPA course rosters.').'</li>   <li>'.&mt('You registered for the course recently and there is a time lag between the time you register, and the time this information becomes available for the update of LON-CAPA course rosters.').'</li>
    <li>'.&mt('Automated enrollment added you to the course in the time since you last logged in.').' '.&mt('If that is the case you can use the "Check for changes" link in the gray Functions bar to update the list of your available course roles.').'</li>   
  </ul>');   </ul>');
     } else {      } else {
         $r->print(&mt('If you were expecting to see an active role listed for a particular course, that course may not have been created yet.').'<br />');          $r->print(&mt('If you were expecting to see an active role listed for a particular course, that course may not have been created yet.').'<br />');
Line 2095  sub adhoc_customroles_row { Line 2132  sub adhoc_customroles_row {
         if (scalar(keys(%{$domdefaults{'adhocroles'}})) > 0) {          if (scalar(keys(%{$domdefaults{'adhocroles'}})) > 0) {
             return &Apache::loncommon::continue_data_table_row()              return &Apache::loncommon::continue_data_table_row()
                   .' <td colspan="5" class="LC_textsize_mobile">'                    .' <td colspan="5" class="LC_textsize_mobile">'
                   .&mt('[_1]Ad hoc[_2] course/community roles in domain [_3] --',                    .&mt('[_1]Ad hoc[_2] course/community roles in domain [_3]',
                        '<span class="LC_cusr_emph">','</span>',$dhdom)                         '<span class="LC_cusr_emph">','</span>',$dhdom)
                   .' '.&courselink($dhdom,$rowtype,$role);                    .' -- '.&courselink($dhdom,$rowtype,$role);
         }          }
     }      }
     return;      return;

Removed from v.1.330  
changed lines
  Added in v.1.336


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