Diff for /loncom/auth/lonroles.pm between versions 1.44 and 1.53

version 1.44, 2002/11/12 22:36:38 version 1.53, 2003/03/23 01:46:51
Line 36 Line 36
 # 12/08,12/28,  # 12/08,12/28,
 # YEAR=2001  # YEAR=2001
 # 01/15/01 Gerd Kortemeyer  # 01/15/01 Gerd Kortemeyer
 # 02/27/01 Scott Harrison  
 # 03/02,05/03,05/25,05/30,06/01,07/06,08/06 Gerd Kortemeyer  # 03/02,05/03,05/25,05/30,06/01,07/06,08/06 Gerd Kortemeyer
 # 12/21 Scott Harrison  
 # 12/29 Gerd Kortemeyer  # 12/29 Gerd Kortemeyer
 #  #
 ###  ###
Line 95  sub handler { Line 93  sub handler {
                if ($tstatus eq 'is') {                 if ($tstatus eq 'is') {
                    $where=~s/^\///;                     $where=~s/^\///;
                    my ($cdom,$cnum,$csec)=split(/\//,$where);                     my ($cdom,$cnum,$csec)=split(/\//,$where);
   # check for keyed access
                      if (($role eq 'st') && 
                        ($ENV{'course.'.$cdom.'_'.$cnum.'.keyaccess'} eq 'yes')) {
                         unless (&Apache::lonnet::validate_access_key(
    $ENV{'environment.key.'.$cdom.'_'.$cnum},
    $cdom,$cnum)) {
   # there is no valid key
     if ($ENV{'form.newkey'}) {
   # student attempts to register a new key
                             } else {
   # print form to enter a new key
                    $r->content_type('text/html');
                            &Apache::loncommon::no_cache($r);
                            $r->send_http_header;
                            my $swinfo=&Apache::lonmenu::rawconfig();
                            my $bodytag=&Apache::loncommon::bodytag
                            ('Enter Access Key to Unlock this Course');
                            $r->print(<<ENDENTERKEY);
   <head><title>Entering Course Access Key</title>
   </head>
   <html>
   $bodytag
   <script>
   $swinfo
   </script>
   <form method="post">
   <input type="hidden" name="selectrole" value="$ENV{'form.selectrole'}" />
   <input type="text" size="20" name="newkey" value="$ENV{'form.newkey'}" />
   <input type="submit" value="Enter key" />
   </form>
   </body></html>
   ENDENTERKEY
                            }
                         }
     }
                    &Apache::lonnet::appenv('request.role'        => $trolecode,                     &Apache::lonnet::appenv('request.role'        => $trolecode,
                                            'request.role.domain' => $cdom,                                             'request.role.domain' => $cdom,
                                            'request.course.sec'  => $csec);                                             'request.course.sec'  => $csec);
Line 117  sub handler { Line 150  sub handler {
                  $r->content_type('text/html');                   $r->content_type('text/html');
                          &Apache::loncommon::no_cache($r);                           &Apache::loncommon::no_cache($r);
                          $r->send_http_header;                           $r->send_http_header;
                          my $swinfo=&Apache::lonmenu::rawconfig($r);                           my $swinfo=&Apache::lonmenu::rawconfig();
                          my $bodytag=&Apache::loncommon::bodytag('Switching Role');                           my $bodytag=&Apache::loncommon::bodytag('Switching Role');
                          print (<<ENDREDIR);                           print (<<ENDREDIR);
 <head><title>Entering Course</title>  <head><title>Entering Course</title>
Line 148  ENDREDIR Line 181  ENDREDIR
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
     my $swinfo=&Apache::lonmenu::rawconfig($r);      my $swinfo=&Apache::lonmenu::rawconfig();
     my $bodytag=&Apache::loncommon::bodytag('User Roles');      my $bodytag=&Apache::loncommon::bodytag('User Roles');
     my $helptag=&Apache::loncommon::help_open_topic("General_Intro","HELP");      my $helptag=&Apache::loncommon::help_open_topic
        ("General_Intro","Click here for help");
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 <html>  <html>
 <head>  <head>
 <title>LON-CAPA User Roles</title>  <title>LON-CAPA User Roles</title>
 </head>  </head>
 $bodytag  $bodytag
 $helptag<p>&nbsp;</p>  $helptag<br />
 <script>  <script>
 $swinfo  $swinfo
 window.focus();  window.focus();
Line 240  ENDHEADER Line 274  ENDHEADER
   
     foreach $envkey (sort keys %ENV) {      foreach $envkey (sort keys %ENV) {
         my $button = 1;          my $button = 1;
           my $switchserver='';
         if ($envkey=~/^user\.role\./) {          if ($envkey=~/^user\.role\./) {
     my (undef,undef,$role,@pwhere)=split(/\./,$envkey);      my (undef,undef,$role,@pwhere)=split(/\./,$envkey);
               next if (!defined($role) || $role eq '');
             my $where=join('.',@pwhere);              my $where=join('.',@pwhere);
             my $trolecode=$role.'.'.$where;              my $trolecode=$role.'.'.$where;
             my ($tstart,$tend)=split(/\./,$ENV{$envkey});              my ($tstart,$tend)=split(/\./,$ENV{$envkey});
Line 249  ENDHEADER Line 285  ENDHEADER
             my $tstatus='is';              my $tstatus='is';
             my $tpstart='&nbsp;';              my $tpstart='&nbsp;';
             my $tpend='&nbsp;';              my $tpend='&nbsp;';
               my $tfont='#000000';
             if ($tstart) {              if ($tstart) {
  if ($tstart>$then) {    if ($tstart>$then) { 
                     $tstatus='future';                      $tstatus='future';
Line 272  ENDHEADER Line 309  ENDHEADER
                 ($ENV{'form.showall'})) {                  ($ENV{'form.showall'})) {
                 if ($tstatus eq 'is') {                  if ($tstatus eq 'is') {
                     $tbg='#77FF77';                      $tbg='#77FF77';
                       $tfont='#003300';
                 } elsif ($tstatus eq 'future') {                  } elsif ($tstatus eq 'future') {
                     $tbg='#FFFF77';                      $tbg='#FFFF77';
                       $button=0;
                 } elsif ($tstatus eq 'will') {                  } elsif ($tstatus eq 'will') {
                     $tbg='#FFAA77';                      $tbg='#FFAA77';
                     $tremark.='Active at next login. ';                      $tremark.='Active at next login. ';
                 } elsif ($tstatus eq 'expired') {                  } elsif ($tstatus eq 'expired') {
                     $tbg='#FF7777';                      $tbg='#FF7777';
                       $tfont='#330000';
                       $button=0;
                 } elsif ($tstatus eq 'will_not') {                  } elsif ($tstatus eq 'will_not') {
                     $tbg='#AAFF77';                      $tbg='#AAFF77';
                     $tremark.='Expired after logout. ';                      $tremark.='Expired after logout. ';
                 } elsif ($tstatus eq 'selected') {                  } elsif ($tstatus eq 'selected') {
                     $tbg='#11CC55';                      $tbg='#11CC55';
                       $tfont='#002200';
                     $tremark.='Currently selected. ';                      $tremark.='Currently selected. ';
                 }                  }
                 my $trole;                  my $trole;
Line 301  ENDHEADER Line 343  ENDHEADER
                 # First, Co-Authorship roles                  # First, Co-Authorship roles
                 if ($role eq 'ca') {                  if ($role eq 'ca') {
                     my $home = &Apache::lonnet::homeserver($trest,$tdom);                      my $home = &Apache::lonnet::homeserver($trest,$tdom);
                     $button = 0 if ($home ne $r->dir_config('lonHostID'));                      if ($home ne $r->dir_config('lonHostID')) {
    $button=0;
                           $switchserver=&Apache::lonnet::escape('http://'.
                            $Apache::lonnet::hostname{$home}.
                            '/adm/login?domain='.$ENV{'user.domain'}.
     '&username='.$ENV{'user.name'}.
                             '&firsturl=/priv/'.$trest);
                       }
                     #next if ($home eq 'no_host');                      #next if ($home eq 'no_host');
                     $home = $Apache::lonnet::hostname{$home};                      $home = $Apache::lonnet::hostname{$home};
                     $ttype='Construction Space';                      $ttype='Construction Space';
Line 312  ENDHEADER Line 361  ENDHEADER
                     # Authors                      # Authors
                     my $home = &Apache::lonnet::homeserver                      my $home = &Apache::lonnet::homeserver
                         ($ENV{'user.name'},$ENV{'user.domain'});                          ($ENV{'user.name'},$ENV{'user.domain'});
                     $button = 0 if ($home ne $r->dir_config('lonHostID'));                      if ($home ne $r->dir_config('lonHostID')) {
    $button=0;
                           $switchserver=&Apache::lonnet::escape('http://'.
                            $Apache::lonnet::hostname{$home}.
                             '/adm/login?domain='.$ENV{'user.domain'}.
      '&username='.$ENV{'user.name'}.
                              '&firsturl=/priv/'.$ENV{'user.name'});
                       }
                     #next if ($home eq 'no_host');                      #next if ($home eq 'no_host');
                     $home = $Apache::lonnet::hostname{$home};                      $home = $Apache::lonnet::hostname{$home};
                     $ttype='Construction Space';                      $ttype='Construction Space';
Line 325  ENDHEADER Line 381  ENDHEADER
     }      }
                     my $tcourseid=$tdom.'_'.$trest;                      my $tcourseid=$tdom.'_'.$trest;
                     if ($ENV{'course.'.$tcourseid.'.description'}) {                      if ($ENV{'course.'.$tcourseid.'.description'}) {
                         $twhere=                          $twhere=$ENV{'course.'.$tcourseid.'.description'};
 &Apache::loncommon::syllabuswrapper($ENV{'course.'.$tcourseid.'.description'},                          unless ($twhere eq 'Currently not available') {
 $trest,$tdom);                             $twhere.=' <font size="-2">'.
           &Apache::loncommon::syllabuswrapper('Syllabus',$trest,$tdom,$tfont).
                                       '</font>';
          }
                     } else {                      } else {
                         my %newhash=Apache::lonnet::coursedescription                          my %newhash=Apache::lonnet::coursedescription
                             ($tcourseid);                              ($tcourseid);
                         if (%newhash) {                          if (%newhash) {
                             $twhere=                              $twhere=$newhash{'description'}.
 &Apache::loncommon::syllabuswrapper($newhash{'description'},$trest,$tdom);                                ' <font size="-2">'.
           &Apache::loncommon::syllabuswrapper('Syllabus',$trest,$tdom,$tfont).
                                 '</font>';
                         } else {                          } else {
                             $twhere='Currently not available';                              $twhere='Currently not available';
                             $ENV{'course.'.$tcourseid.'.description'}=$twhere;                              $ENV{'course.'.$tcourseid.'.description'}=$twhere;
Line 352  $trest,$tdom); Line 413  $trest,$tdom);
                 $r->print('<tr bgcolor='.$tbg.'>');                  $r->print('<tr bgcolor='.$tbg.'>');
                 unless ($nochoose) {                  unless ($nochoose) {
                     if (!$button) {                      if (!$button) {
                         $r->print('<td>&nbsp;</td>');   if ($switchserver) {
       $r->print('<td><a href="/adm/logout?handover='.
                                 $switchserver.'">Switch Server</a></td>');
                           } else {
                               $r->print('<td>&nbsp;</td>');
                           }
                     } elsif ($tstatus eq 'is') {                      } elsif ($tstatus eq 'is') {
                         $r->print('<td><input type=submit value=Select name="'.                          $r->print('<td><input type=submit value=Select name="'.
                                   $trolecode.'"></td>');                                    $trolecode.'"></td>');
Line 364  $trest,$tdom); Line 430  $trest,$tdom);
                         $r->print('<td>&nbsp;</td>');                          $r->print('<td>&nbsp;</td>');
                     }                      }
                 }                  }
             $r->print('<td>'.$trole.'</td><td>'.              $r->print('<td><font color="'.$tfont.'">'.$trole.
       $ttype.'</td><td>'.$twhere.'</td><td>'.$tpstart.                        '</font></td><td><font color="'.$tfont.'">'.$ttype.
                       '</td><td>'.$tpend.                        '</font></td><td><font color="'.$tfont.'">'.$twhere.
                       '</td><td>'.$tremark.'&nbsp;</td></tr>'."\n");                        '</font></td><td><font color="'.$tfont.'">'.$tpstart.
                         '</font></td><td><font color="'.$tfont.'">'.$tpend.
                         '</font></td><td><font color="'.$tfont.'">'.$tremark.
                         '&nbsp;</font></td></tr>'."\n");
  }   }
         }          }
     }      }
     my $tremark='';      my $tremark='';
       my $tfont='#003300';
     if ($ENV{'request.role'} eq 'cm') {      if ($ENV{'request.role'} eq 'cm') {
  $r->print('<tr bgcolor="#11CC55">');   $r->print('<tr bgcolor="#11CC55">');
         $tremark='Currently selected.';          $tremark='Currently selected.';
           $tfont='#002200';
     } else {      } else {
         $r->print('<tr bgcolor="#77FF77">');          $r->print('<tr bgcolor="#77FF77">');
     }      }
Line 385  $trest,$tdom); Line 456  $trest,$tdom);
           $r->print('<td>&nbsp;</td>');            $r->print('<td>&nbsp;</td>');
        }         }
     }      }
     $r->print('<td colspan=5>No role specified'.      $r->print('<td colspan=5><font color="'.$tfont.'">No role specified'.
                       '</td><td>'.$tremark.'&nbsp;</td></tr>'."\n");        '</font></td><td><font color="'.$tfont.'">'.$tremark.
         '&nbsp;</font></td></tr>'."\n");
   
     $r->print('</table>');      $r->print('</table>');
     unless ($nochoose) {      unless ($nochoose) {

Removed from v.1.44  
changed lines
  Added in v.1.53


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.