Diff for /loncom/auth/lonroles.pm between versions 1.200 and 1.203

version 1.200, 2008/07/08 20:16:16 version 1.203, 2008/07/30 15:34:34
Line 43  use Apache::lonpageflip(); Line 43  use Apache::lonpageflip();
 use Apache::lonnavdisplay();  use Apache::lonnavdisplay();
 use GDBM_File;  use GDBM_File;
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
   use HTML::Entities;
     
   
 sub redirect_user {  sub redirect_user {
Line 335  ENDENTERKEY Line 336  ENDENTERKEY
  } elsif ($env{'request.course.id'}) {   } elsif ($env{'request.course.id'}) {
                                     if ($env{'form.destinationurl'}) {                                      if ($env{'form.destinationurl'}) {
                                         my $dest = $env{'form.destinationurl'};                                          my $dest = $env{'form.destinationurl'};
                                           if ($env{'form.destsymb'} ne '') {
                                               my $esc_symb = &HTML::Entities::encode($env{'form.destsymb'},'"<>&');
                                               $dest .= '?symb='.$esc_symb;
                                           }
                                         &redirect_user($r,&mt('Entering [_1]',                                          &redirect_user($r,&mt('Entering [_1]',
                                                       $env{'course.'.$courseid.'.description'}),                                                        $env{'course.'.$courseid.'.description'}),
                                                $dest,$msg,                                                 $dest,$msg,
Line 675  ENDHEADER Line 680  ENDHEADER
     } else {      } else {
         if ($countactive > 0) {          if ($countactive > 0) {
             my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');              my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
             $r->print('<p>'.&mt('[_1]Visit the [_2]Course Catalog[_3] to view all [_4] LON-CAPA courses.','<b>','<a href="/adm/coursecatalog">','</a></b>',$domdesc).'<br />'.&mt('If a course is [_1]not[_2] in your list of current courses below, you may be able to enroll if self-enrollment is permitted.','<b>','</b>').'</p>');              my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); 
               $r->print('<p>'.&mt('[_1]Visit the [_2]Course Catalog[_3] to view all [_4] LON-CAPA courses.','<b>','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a></b>',$domdesc).'<br />'.&mt('If a course is [_1]not[_2] in your list of current courses below, you may be able to enroll if self-enrollment is permitted.','<b>','</b>').'</p>');
         }          }
     }      }
   
Line 712  ENDHEADER Line 718  ENDHEADER
         $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
  return OK;   return OK;
 # Is there only one choice?  # Is there only one choice?
     } elsif (($countactive==1) && ($env{'request.role'} eq 'cm')) {      } elsif ($countactive==1) {
  $r->print('<h3>'.&mt('Please stand by.').'</h3>'.          my $needs_switchserver;
     '<input type="hidden" name="'.$possiblerole.'" value="1" />'.          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>');              '<noscript><br /><input type="submit" name="submit" value="'.&mt('Continue').'" /></noscript>');
  $r->print("</form>\n");      $r->print("</form>\n");
  $r->rflush();      $r->rflush();
  $r->print('<script type="text/javascript">document.forms.rolechoice.submit();</script>');      $r->print('<script type="text/javascript">document.forms.rolechoice.submit();</script>');
  $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
  return OK;      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  # More than one possible role
 # ----------------------------------------------------------------------- Table  # ----------------------------------------------------------------------- Table
     unless ((!&Apache::lonmenu::show_course()) || ($nochoose)) {      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");
     }      }
     my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole,$nochoose);      my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole,$nochoose);
Line 759  ENDHEADER Line 777  ENDHEADER
                   &Apache::loncommon::authorbrowser_javascript());                    &Apache::loncommon::authorbrowser_javascript());
     }      }
     &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);      &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);
     my $tremark='';      if ($countactive > 1) {
     my $tfont='#003300';          my $tremark='';
     if ($env{'request.role'} eq 'cm') {          my $tfont='#003300';
  $r->print('<tr bgcolor="#11CC55">');          if ($env{'request.role'} eq 'cm') {
         $tremark=&mt('Currently selected. ');      $r->print('<tr bgcolor="#11CC55">');
         $tfont='#002200';              $tremark=&mt('Currently selected. ');
     } else {              $tfont='#002200';
         $r->print('<tr bgcolor="#77FF77">');          } else {
     }              $r->print('<tr bgcolor="#77FF77">');
     unless ($nochoose) {          }
  if ($env{'request.role'} ne 'cm') {          unless ($nochoose) {
     $r->print('<td><input type="submit" value="'.      if ($env{'request.role'} ne 'cm') {
       &mt('Select').'" name="cm" /></td>');          $r->print('<td><input type="submit" value="'.
  } else {            &mt('Select').'" name="cm" /></td>');
     $r->print('<td>&nbsp;</td>');      } else {
  }          $r->print('<td>&nbsp;</td>');
     }      }
     $r->print('<td colspan="3"><font color="'.$tfont.'"><span class="LC_rolesinfo">'.&mt('No role specified').          }
       '</span></font></td><td><font color="'.$tfont.'">'.$tremark.          $r->print('<td colspan="3"><font color="'.$tfont.'"><span class="LC_rolesinfo">'.&mt('No role specified').
       '&nbsp;</font></td></tr>'."\n");                    '</span></font></td><td><font color="'.$tfont.'">'.$tremark.
                     '&nbsp;</font></td></tr>'."\n");
       } 
     $r->print('</table>');      $r->print('</table>');
     unless ($nochoose) {      unless ($nochoose) {
  $r->print("</form>\n");   $r->print("</form>\n");
Line 791  ENDHEADER Line 810  ENDHEADER
     }      }
     $r->print(&Apache::lonnet::getannounce());      $r->print(&Apache::lonnet::getannounce());
     if ($advanced) {      if ($advanced) {
           my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&');
  $r->print('<p><small><i>'   $r->print('<p><small><i>'
                  .&mt('This is LON-CAPA [_1]',$r->dir_config('lonVersion'))                   .&mt('This is LON-CAPA [_1]',$r->dir_config('lonVersion'))
  .'</i><br />'   .'</i><br />'
  .'<a href="/adm/logout">'.&mt('Logout').'</a>&nbsp;&nbsp;'   .'<a href="/adm/logout">'.&mt('Logout').'</a>&nbsp;&nbsp;'
                  .'<a href="/adm/coursecatalog">'.&mt('Course Catalog')                   .'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">'
                    .&mt('Course Catalog')
                  .'</small></p>');                   .'</small></p>');
     }      }
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
Line 866  sub print_rolerows { Line 887  sub print_rolerows {
 sub findcourse_advice {  sub findcourse_advice {
     my ($r) = @_;      my ($r) = @_;
     my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');      my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
       my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&');
     if (&Apache::lonnet::auto_run(undef,$env{'user.domain'})) {      if (&Apache::lonnet::auto_run(undef,$env{'user.domain'})) {
         $r->print(&mt('If you were expecting to see an active role listed for a particular course in the [_1] domain, it may be missing for one of the following reasons:',$domdesc).'          $r->print(&mt('If you were expecting to see an active role listed for a particular course in the [_1] domain, it may be missing for one of the following reasons:',$domdesc).'
 <ul>  <ul>
Line 878  sub findcourse_advice { Line 900  sub findcourse_advice {
     } 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 />');
     }      }
     $r->print('<p>'.&mt('The [_1]Course Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created.','<a href="/adm/coursecatalog">','</a>',$domdesc).'<br />');      $r->print('<p>'.&mt('The [_1]Course Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />');
     $r->print(&mt('You can search the course catalog for courses which permit self-enrollment, if you would like to enroll in a course.').'</p>');      $r->print(&mt('You can search the course catalog for courses which permit self-enrollment, if you would like to enroll in a course.').'</p>');
     return;      return;
 }  }
Line 1014  sub build_roletext { Line 1036  sub build_roletext {
     return $roletext;      return $roletext;
 }  }
   
   sub check_needs_switchserver {
       my ($possiblerole) = @_;
       my $needs_switchserver;
       my ($role,$where) = split(/\./,$possiblerole,2);
       my (undef,$tdom,$twho) = split(/\//,$where);
       my ($server_status,$home);
       if (($role eq 'ca') || ($role eq 'aa')) {
           ($server_status,$home) = &check_author_homeserver($twho,$tdom);
       } else {
           ($server_status,$home) = &check_author_homeserver($env{'user.name'},
                                                             $env{'user.domain'});
       }
       if ($server_status eq 'switchserver') {
           $needs_switchserver = 1;
       }
       return $needs_switchserver;
   }
   
 sub check_author_homeserver {  sub check_author_homeserver {
     my ($uname,$udom)=@_;      my ($uname,$udom)=@_;
     if (($uname eq '') || ($udom eq '')) {      if (($uname eq '') || ($udom eq '')) {
Line 1069  sub check_fordc { Line 1109  sub check_fordc {
 sub adhoc_course_role {  sub adhoc_course_role {
     my ($then) = @_;       my ($then) = @_; 
     my ($cdom,$cnum);      my ($cdom,$cnum);
     my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};      $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};      $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
     if (&check_forcc($cdom,$cnum,$then)) {      if (&check_forcc($cdom,$cnum,$then)) {
         my $setprivs;          my $setprivs;
         if (!defined($env{'user.role.'.$env{'form.switchrole'}})) {          if (!defined($env{'user.role.'.$env{'form.switchrole'}})) {

Removed from v.1.200  
changed lines
  Added in v.1.203


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