Diff for /loncom/auth/lonroles.pm between versions 1.106 and 1.107

version 1.106, 2004/11/11 22:18:23 version 1.107, 2004/11/11 23:17:13
Line 83  sub handler { Line 83  sub handler {
     my $then=$ENV{'user.login.time'};      my $then=$ENV{'user.login.time'};
     my $envkey;      my $envkey;
     my $dcselect='';      my $dcselect='';
       my %dcroles = ();
       my $numdc = &check_fordc(\%dcroles,$then);
   
 # ================================================================== Roles Init  # ================================================================== Roles Init
     if ($ENV{'form.selectrole'}) {      if ($ENV{'form.selectrole'}) {
Line 121  sub handler { Line 122  sub handler {
                                 "request.role.adv"    => $ENV{'user.adv'},                                  "request.role.adv"    => $ENV{'user.adv'},
  "request.role.domain" => $ENV{'user.domain'});   "request.role.domain" => $ENV{'user.domain'});
   
 # Check to see if the user is a DC trying to enter a course                              # Check to see if the user is a DC trying to enter a course and needs privs to be created
 # course selection page          if ($numdc > 0) {
         my $dcflag = 0;              foreach my $envkey (keys %ENV) {
                   if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) {
                       if ($dcroles{$1}) {
                           unless ($ENV{'user.role.cc./'.$1.'/'.$2}) {
                               &set_privileges($1,$2);
                           }
                       }
                       last;
                   }
               }
           }
   
         if ($ENV{'form.dccourse'}) {          if ($ENV{'form.dccourse'}) {
             my $dcdom = $ENV{'form.dcdomain'};              my $dcdom = $ENV{'form.dcdomain'};
             my $pickedcourse = $ENV{'form.dccourse'};              my $pickedcourse = $ENV{'form.dccourse'};
Line 131  sub handler { Line 143  sub handler {
                 unless ($ENV{'user.role.cc./'.$dcdom.'/'.$pickedcourse}) {                  unless ($ENV{'user.role.cc./'.$dcdom.'/'.$pickedcourse}) {
                     if ($ENV{'user.role.dc./'.$dcdom.'/'}) {                      if ($ENV{'user.role.dc./'.$dcdom.'/'}) {
                         &set_privileges($dcdom,$pickedcourse);                          &set_privileges($dcdom,$pickedcourse);
                         my $msg=&mt('Entering course ...');  
                         my ($furl,$ferr)=&Apache::lonuserstate::readmap($dcdom.'/'.$pickedcourse);  
                         my $formaction = '/adm/roles/';  
                         my $courseid = $dcdom.'_'.$pickedcourse;  
                         &Apache::lonhtmlcommon::store_recent('cc_pickby_dc_'.$dcdom,  
                             $courseid,$formaction);  
                         # Send the user to the course they selected  
                         &redirect_user($r,&mt('Entering Course'),  
                                 $furl,$msg,  
                                 $ENV{'environment.remotenavmap'});  
                         return OK;  
                     }                      }
                 }                  }
             }              }
Line 291  ENDENTERKEY Line 292  ENDENTERKEY
     }      }
                             # Check to see if the user is a DC coming from the                              # Check to see if the user is a DC coming from the
                             # course selection page                              # course selection page
                             my $dcflag = 0;  
                             if ($ENV{'form.dccourse'}) {                              if ($ENV{'form.dccourse'}) {
                                 my $formaction = '/adm/roles/';                                  my $formaction = '/adm/roles/';
                                 my ($dcdom,$pickedcourse) = split/_/,$courseid;                                  my ($dcdom,$pickedcourse) = split/_/,$courseid;
Line 435  ENDHEADER Line 435  ENDHEADER
  $r->print('><input type=submit value="'.&mt('Display').'">');   $r->print('><input type=submit value="'.&mt('Display').'">');
     }      }
   
     my %dcroles = ();  
     my $numdc = &check_fordc(\%dcroles,$then);  
   
     my (%roletext,%sortrole,%roleclass);      my (%roletext,%sortrole,%roleclass);
     my $countactive=0;      my $countactive=0;
     my $inrole=0;      my $inrole=0;
Line 1044  sub set_privileges { Line 1041  sub set_privileges {
     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);
     $userroles .= &Apache::lonnet::set_userprivs(\$userroles,\%ccrole);                        my @newprivs = split/\n/,$userroles;      my ($author,$adv)= &Apache::lonnet::set_userprivs(\$userroles,\%ccrole);
       my @newprivs = split/\n/,$userroles;
     my %newccroles = ();      my %newccroles = ();
     foreach (@newprivs) {      foreach (@newprivs) {
         my ($key,$val) = split/=/,$_;          my ($key,$val) = split/=/,$_;
Line 1055  sub set_privileges { Line 1053  sub set_privileges {
                          $ENV{'user.name'},                           $ENV{'user.name'},
                          $ENV{'user.home'},                           $ENV{'user.home'},
                         "Role ".$role);                          "Role ".$role);
                                                                                              
     &Apache::lonnet::appenv(      &Apache::lonnet::appenv(
                           'request.role'        => $role,                            'request.role'        => $role,
                           'request.role.domain' => $dcdom,                            'request.role.domain' => $dcdom,

Removed from v.1.106  
changed lines
  Added in v.1.107


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