Diff for /loncom/auth/lonroles.pm between versions 1.152 and 1.164

version 1.152, 2006/05/30 21:16:40 version 1.164, 2006/08/31 13:25:18
Line 88  sub error_page { Line 88  sub error_page {
       &Apache::lonmenu::rawconfig().'</script>'.        &Apache::lonmenu::rawconfig().'</script>'.
       '<p>'.&mt('The following problems occurred:').        '<p>'.&mt('The following problems occurred:').
       $error.        $error.
       '</p><br /><a href="'.$dest.'>'.&mt('Continue').'</a>'.        '</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>'.
       &Apache::loncommon::end_page());        &Apache::loncommon::end_page());
 }  }
   
Line 149  sub handler { Line 149  sub handler {
   
 # store role if recent_role list being kept  # store role if recent_role list being kept
                     if ($env{'environment.recentroles'}) {                      if ($env{'environment.recentroles'}) {
                           my %frozen_roles =
                              &Apache::lonhtmlcommon::get_recent_frozen('roles',$env{'environment.recentrolesn'});
  &Apache::lonhtmlcommon::store_recent('roles',   &Apache::lonhtmlcommon::store_recent('roles',
      $trolecode,' ');       $trolecode,' ',$frozen_roles{$trolecode});
                     }                      }
   
   
Line 264  ENDENTERKEY Line 266  ENDENTERKEY
     }      }
     return OK;      return OK;
  } else {   } else {
                             my $type = 'Course/Group';      if (!$env{'request.course.id'}) {
     if ($env{'request.course.id'}) {  
                                 if (defined($env{'course.'.  
                                             $env{'request.course.id'}.'.type'})) {  
                                     $type = $env{'course.'.  
                                                  $env{'request.course.id'}.'.type'};  
                                 }  
  &Apache::lonnet::appenv(   &Apache::lonnet::appenv(
       "request.course.id"  => $cdom.'_'.$cnum);        "request.course.id"  => $cdom.'_'.$cnum);
  $furl='/adm/roles?tryagain=1';   $furl='/adm/roles?tryagain=1';
  $msg=   $msg=
     '<h1><font color="red">'.      '<h1><span class="LC_error">'.
  &mt('Could not initialize [_1] at this time.',lc($type)).      &mt('Could not initialize [_1] at this time.',
     '</font></h1><h3>'.&mt('Please try again.').'</h3>'.$ferr;   $env{'course.'.$cdom.'_'.$cnum.'.description'}).
       '</span></h1><h3>'.&mt('Please try again.').'</h3>'.$ferr;
     }      }
     if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; }      if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; }
     &Apache::lonnet::appenv('request.role.adv'=>$tadv);      &Apache::lonnet::appenv('request.role.adv'=>$tadv);
Line 305  ENDENTERKEY Line 302  ENDENTERKEY
  ) {   ) {
  my $startpage = &courseloadpage($courseid);   my $startpage = &courseloadpage($courseid);
  unless ($startpage eq 'firstres') {            unless ($startpage eq 'firstres') {         
     $msg = &mt('Entering [_1] ....',lc($type));      $msg = &mt('Entering [_1] ....',
          $env{'course.'.$courseid.'.description'});
     &redirect_user($r,&mt('New in course'),      &redirect_user($r,&mt('New in course'),
    '/adm/whatsnew?refpage=start',$msg,     '/adm/whatsnew?refpage=start',$msg,
    $env{'environment.remotenavmap'});     $env{'environment.remotenavmap'});
Line 318  ENDENTERKEY Line 316  ENDENTERKEY
 # Guess not ...  # Guess not ...
     $furl=&Apache::lonpageflip::first_accessible_resource();      $furl=&Apache::lonpageflip::first_accessible_resource();
  }   }
                                 $msg = &mt('Entering [_1] ...',lc($type));                                  $msg = &mt('Entering [_1] ...',
  &redirect_user($r,&mt('Entering [_1]',$type),     $env{'course.'.$courseid.'.description'});
    &redirect_user($r,&mt('Entering [_1]',
         $env{'course.'.$courseid.'.description'}),
        $furl,$msg,         $furl,$msg,
        $env{'environment.remotenavmap'});         $env{'environment.remotenavmap'});
     }      }
Line 364  ENDENTERKEY Line 364  ENDENTERKEY
     my $start_page=&Apache::loncommon::start_page('User Roles');      my $start_page=&Apache::loncommon::start_page('User Roles');
     my $standby=&mt('Role selected. Please stand by.');      my $standby=&mt('Role selected. Please stand by.');
     $standby=~s/\n/\\n/g;      $standby=~s/\n/\\n/g;
     my $helptag='<table><tr><td>'.&Apache::loncommon::help_open_menu('','General Intro','General_Intro','User Roles',1,undef,undef,undef,undef,,&mt("Click here for help")).'</td></td></tr></table>';  
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 $start_page  $start_page
 $helptag<br />  <br />
 <script>  <script>
 $swinfo  $swinfo
 window.focus();  window.focus();
Line 424  ENDHEADER Line 424  ENDHEADER
     } else {      } else {
         if ($env{'user.error.msg'}) {          if ($env{'user.error.msg'}) {
     $r->print(      $r->print(
  '<h3><font color="red">'.   '<h3><span class="LC_error">'.
  &mt('You need to choose another user role or enter a specific course for this function').'</font></h3>');   &mt('You need to choose another user role or enter a specific course for this function').'</span></h3>');
  }   }
     }      }
 # -------------------------------------------------------- Choice or no choice?  # -------------------------------------------------------- Choice or no choice?
Line 485  ENDHEADER Line 485  ENDHEADER
  $tstatus='selected';   $tstatus='selected';
             }              }
             my $tbg;              my $tbg;
             if (($tstatus eq 'is') || ($tstatus eq 'selected') ||              if (($tstatus eq 'is') 
                 ($env{'form.showall'})) {   || ($tstatus eq 'selected') 
    || ($tstatus eq 'will') 
    || ($tstatus eq 'future') 
                   || ($env{'form.showall'})) {
                 if ($tstatus eq 'is') {                  if ($tstatus eq 'is') {
                     $tbg='#77FF77';                      $tbg='#77FF77';
                     $tfont='#003300';                      $tfont='#003300';
Line 518  ENDHEADER Line 521  ENDHEADER
     if ($tremark) { $tremark.='<br />'; }      if ($tremark) { $tremark.='<br />'; }
                     $tremark.=&mt('Defined by ').$rauthor.                      $tremark.=&mt('Defined by ').$rauthor.
  &mt(' at ').$rdomain.'.';   &mt(' at ').$rdomain.'.';
                     $trole=$rrole;   }
                 } else {   $trole=Apache::lonnet::plaintext($role);
                     $trole=Apache::lonnet::plaintext($role);  
                 }  
                 my $ttype;                  my $ttype;
                 my $twhere;                  my $twhere;
                 my ($tdom,$trest,$tsection)=                  my ($tdom,$trest,$tsection)=
Line 565  ENDHEADER Line 566  ENDHEADER
     $tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$env{'user.name'}.'/');      $tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$env{'user.name'}.'/');
     $sortkey=$role;      $sortkey=$role;
                 } elsif ($trest) {                  } elsif ($trest) {
                     $ttype='Course';  
                     my $tcourseid=$tdom.'_'.$trest;                      my $tcourseid=$tdom.'_'.$trest;
                     if (defined($env{'course.'.$tcourseid.'.type'})) {                      $ttype = &Apache::loncommon::course_type($tcourseid);
                         $ttype = $env{'course.'.$tcourseid.'.type'};                      $trole = &Apache::lonnet::plaintext($role,$ttype);
                         if ($ttype eq 'Group') {  
                             $trole = &Apache::loncommon::convert_role($trole,  
                                                                       $ttype);      
                         }  
                     }  
                     if ($env{'course.'.$tcourseid.'.description'}) {                      if ($env{'course.'.$tcourseid.'.description'}) {
                         $twhere=$env{'course.'.$tcourseid.'.description'};                          $twhere=$env{'course.'.$tcourseid.'.description'};
  $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;   $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;
Line 592  ENDHEADER Line 587  ENDHEADER
         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont).
                               '</font>';                                '</font>';
                             $ttype = $newhash{'type'};                              $ttype = $newhash{'type'};
                             if ($ttype eq 'Group') {                              $trole = &Apache::lonnet::plaintext($role,$ttype);
                                 $trole = &Apache::loncommon::convert_role(  
                                                                 $trole,$ttype);  
                             }  
                         } else {                          } else {
                             $twhere=&mt('Currently not available');                              $twhere=&mt('Currently not available');
                             $env{'course.'.$tcourseid.'.description'}=$twhere;                              $env{'course.'.$tcourseid.'.description'}=$twhere;
Line 754  ENDHEADER Line 746  ENDHEADER
  $ttype='Construction Space';   $ttype='Construction Space';
  $twhere='User: '.$trest.', Domain: '.$tdom;   $twhere='User: '.$trest.', Domain: '.$tdom;
     } else {      } else {
  $ttype='Course';   $ttype= 
                         if (defined($env{'course.'.$tdom.'_'.$trest.'.type'})) {      &Apache::loncommon::course_type($tdom.'_'.$trest);
                             $ttype = $env{'course.'.$tdom.'_'.$trest.'.type'};  
                         }  
  $twhere=$env{'course.'.$tdom.'_'.$trest.'.description'};   $twhere=$env{'course.'.$tdom.'_'.$trest.'.description'};
  if ($tsec) {   if ($tsec) {
     $twhere.=' (Section: '.$tsec.')';      $twhere.=' (Section: '.$tsec.')';
Line 844  sub build_roletext { Line 834  sub build_roletext {
                 $roletext.='<td'.$rowspan.'><a href="/adm/switchserver?'.                  $roletext.='<td'.$rowspan.'><a href="/adm/switchserver?'.
                 $switchserver.'">'.&mt('Switch Server').'</a></td>';                  $switchserver.'">'.&mt('Switch Server').'</a></td>';
             } else {              } else {
                 $roletext.=('<td>&nbsp;</td>');                  $roletext.=('<td'.$rowspan.'>&nbsp;</td>');
             }              }
         } elsif ($tstatus eq 'is') {          } elsif ($tstatus eq 'is') {
             $roletext.='<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.              $roletext.='<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
Line 998  sub display_cc_role { Line 988  sub display_cc_role {
         if ($rolekey =~ m-^user\.role.cc\./(\w+)/(\w+)$-) {          if ($rolekey =~ m-^user\.role.cc\./(\w+)/(\w+)$-) {
             my $tcourseid = $1.'_'.$2;              my $tcourseid = $1.'_'.$2;
             my $trolecode = 'cc./'.$1.'/'.$2;              my $trolecode = 'cc./'.$1.'/'.$2;
             my $trole = Apache::lonnet::plaintext('cc');  
             my $twhere;              my $twhere;
             my $ttype;              my $ttype;
             my $tbg='#77FF77';              my $tbg='#77FF77';
Line 1009  sub display_cc_role { Line 998  sub display_cc_role {
                         ' <font size="-2">'.                          ' <font size="-2">'.
                         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1,$tfont).                          &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1,$tfont).
                         '</font>';                          '</font>';
                 $ttype=$newhash{'type'};                  $ttype = $newhash{'type'};
                 if ($ttype eq 'Group') {  
                     $trole = &Apache::loncommon::convert_role($trole,$ttype);  
                 }  
             } else {              } else {
                 $twhere=&mt('Currently not available');                  $twhere=&mt('Currently not available');
                 $env{'course.'.$tcourseid.'.description'}=$twhere;                  $env{'course.'.$tcourseid.'.description'}=$twhere;
                 $ttype = 'Unavailable';  
             }              }
               my $trole = &Apache::lonnet::plaintext('cc',$ttype);
             $twhere.="<br />".&mt('Domain').":".$1;              $twhere.="<br />".&mt('Domain').":".$1;
             $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tfont,$trole,$twhere,'','','',1,'');              $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tfont,$trole,$twhere,'','','',1,'');
         }          }
Line 1027  sub display_cc_role { Line 1013  sub display_cc_role {
   
 sub allcourses_row {  sub allcourses_row {
     my ($dcdom,$rowtype) = @_;      my ($dcdom,$rowtype) = @_;
     my $ccrole = Apache::lonnet::plaintext('cc');  
     my $output = '<tr bgcolor="#77FF77">'.      my $output = '<tr bgcolor="#77FF77">'.
                  ' <td colspan="5">';                   ' <td colspan="5">';
     foreach my $type ('Course','Group') {      foreach my $type ('Course','Group') {
         my $selectlink = &courselink($dcdom,$rowtype,$type);          my $selectlink = &courselink($dcdom,$rowtype,$type);
         if ($type eq 'Group') {          my $ccrole = &Apache::lonnet::plaintext('cc',$type);
             $ccrole = &Apache::loncommon::convert_role($ccrole,$type);  
         }  
         $output.= '<font color="#002200">'.$ccrole.'</font>'.          $output.= '<font color="#002200">'.$ccrole.'</font>'.
               ' <b>'.$selectlink.'</b>'.                ' <b>'.$selectlink.'</b>'.
               ' from '.&mt('Domain').' '.$dcdom.'<br />';                ' from '.&mt('Domain').' '.$dcdom.'<br />';
Line 1053  sub set_privileges { Line 1036  sub set_privileges {
     my $area = '/'.$dcdom.'/'.$pickedcourse;      my $area = '/'.$dcdom.'/'.$pickedcourse;
     my $role = 'cc';      my $role = 'cc';
     my $spec = $role.'.'.$area;      my $spec = $role.'.'.$area;
     my $userroles = &Apache::lonnet::set_arearole($role,$area,'','',$dcdom,$env{'user.name'});      my %userroles = &Apache::lonnet::set_arearole($role,$area,'','',$dcdom,$env{'user.name'});
     my %ccrole = ();      my %ccrole = ();
     &Apache::lonnet::standard_roleprivs(\%ccrole,$role,$dcdom,$spec,$pickedcourse,$area);      &Apache::lonnet::standard_roleprivs(\%ccrole,$role,$dcdom,$spec,$pickedcourse,$area);
     my ($author,$adv)= &Apache::lonnet::set_userprivs(\$userroles,\%ccrole);      my ($author,$adv)= &Apache::lonnet::set_userprivs(\%userroles,\%ccrole);
     my @newprivs = split/\n/,$userroles;      &Apache::lonnet::appenv(%userroles);
     my %newccroles = ();  
     foreach (@newprivs) {  
         my ($key,$val) = split/=/,$_;  
         $newccroles{$key} = $val;  
     }  
     &Apache::lonnet::appenv(%newccroles);  
     &Apache::lonnet::log($env{'user.domain'},      &Apache::lonnet::log($env{'user.domain'},
                          $env{'user.name'},                           $env{'user.name'},
                          $env{'user.home'},                           $env{'user.home'},

Removed from v.1.152  
changed lines
  Added in v.1.164


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