Diff for /loncom/auth/lonroles.pm between versions 1.141 and 1.146

version 1.141, 2005/12/20 19:07:10 version 1.146, 2006/03/16 19:19:59
Line 108  sub handler { Line 108  sub handler {
 # Check if user is a DC trying to enter a course and needs privs to be created  # Check if user is a DC trying to enter a course and needs privs to be created
         if ($numdc > 0) {          if ($numdc > 0) {
             foreach my $envkey (keys %env) {              foreach my $envkey (keys %env) {
                 if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) {                  if (my ($domain,$coursenum) =
                     if ($dcroles{$1}) {                                      ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-)) {
                         my $cckey = 'user.role.cc./'.$1.'/'.$2;                      if ($dcroles{$domain}) {
                         &check_privs($cckey,$then,$now);                          &check_privs($domain,$coursenum,$then,$now);
                     }                      }
                     last;                      last;
                 }                  }
Line 271  ENDENTERKEY Line 271  ENDENTERKEY
   '.course.helper.not.run'}) {    '.course.helper.not.run'}) {
  $furl = "/adm/helper/course.initialization.helper";   $furl = "/adm/helper/course.initialization.helper";
  # Send the user to the course they selected   # Send the user to the course they selected
     } elsif ($env{'request.course.fn'}) {      } elsif ($env{'request.course.id'}) {
                                 if ($env{'request.role.adv'}) {                                  if (&Apache::lonnet::allowed('whn',
                                                     $env{'request.course.id'})
       || &Apache::lonnet::allowed('whn',
          $env{'request.course.id'}.'/'
         .$env{'request.course.sec'})
       ) {
                                     my $startpage = &courseloadpage($courseid);                                      my $startpage = &courseloadpage($courseid);
                                     unless ($startpage eq 'firstres') {                                               unless ($startpage eq 'firstres') {         
         $msg = &mt('Entering course ....');          $msg = &mt('Entering course ....');
Line 530  ENDHEADER Line 535  ENDHEADER
     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=&Apache::lonnet::escape('http://'.                          $switchserver='otherserver='.$home.'&role='.$trolecode;
                          $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};
Line 846  sub build_roletext { Line 847  sub build_roletext {
 }  }
   
 sub check_privs {  sub check_privs {
     my ($cckey,$then,$now) = @_;      my ($cdom,$cnum,$then,$now) = @_;
       my $cckey = 'user.role.cc./'.$cdom.'/'.$cnum; 
     if ($env{$cckey}) {      if ($env{$cckey}) {
         my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);          my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);
         &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);          &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
         unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) {          unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) {
             &set_privileges($1,$2);              &set_privileges($cdom,$cnum);
         }          }
     } else {      } else {
         &set_privileges($1,$2);          &set_privileges($cdom,$cnum);
     }      }
 }  }
   
Line 1021  sub set_privileges { Line 1023  sub set_privileges {
                          $env{'user.home'},                           $env{'user.home'},
                         "Role ".$role);                          "Role ".$role);
     &Apache::lonnet::appenv(      &Apache::lonnet::appenv(
                           'request.role'        => $role,                            'request.role'        => $spec,
                           'request.role.domain' => $dcdom,                            'request.role.domain' => $dcdom,
                           'request.course.sec'  => '');                            'request.course.sec'  => '');
     my $tadv=0;      my $tadv=0;
Line 1032  sub set_privileges { Line 1034  sub set_privileges {
 sub courseloadpage {  sub courseloadpage {
     my ($courseid) = @_;      my ($courseid) = @_;
     my $startpage;      my $startpage;
     my %entry_settings =      my %entry_settings = &Apache::lonnet::get('nohist_whatsnew',
               &Apache::lonnet::dump('nohist_whatsnew',$env{'user.domain'},        [$courseid.':courseinit']);
                                     $env{'user.name'},$courseid.':courseinit');  
     my ($tmp) = %entry_settings;      my ($tmp) = %entry_settings;
     unless ($tmp =~ /^Error/) {      unless ($tmp =~ /^error: 2 /) {
         $startpage = $entry_settings{$courseid.':courseinit'};          $startpage = $entry_settings{$courseid.':courseinit'};
     }      }
     if ($startpage eq '') {      if ($startpage eq '') {

Removed from v.1.141  
changed lines
  Added in v.1.146


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