--- loncom/auth/lonroles.pm 2006/01/06 21:04:33 1.145 +++ loncom/auth/lonroles.pm 2006/03/16 19:19:59 1.146 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.145 2006/01/06 21:04:33 albertel Exp $ +# $Id: lonroles.pm,v 1.146 2006/03/16 19:19:59 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -108,10 +108,10 @@ sub handler { # Check if user is a DC trying to enter a course and needs privs to be created if ($numdc > 0) { foreach my $envkey (keys %env) { - if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) { - if ($dcroles{$1}) { - my $cckey = 'user.role.cc./'.$1.'/'.$2; - &check_privs($cckey,$then,$now); + if (my ($domain,$coursenum) = + ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-)) { + if ($dcroles{$domain}) { + &check_privs($domain,$coursenum,$then,$now); } last; } @@ -847,15 +847,16 @@ sub build_roletext { } sub check_privs { - my ($cckey,$then,$now) = @_; + my ($cdom,$cnum,$then,$now) = @_; + my $cckey = 'user.role.cc./'.$cdom.'/'.$cnum; if ($env{$cckey}) { my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont); &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) { - &set_privileges($1,$2); + &set_privileges($cdom,$cnum); } } else { - &set_privileges($1,$2); + &set_privileges($cdom,$cnum); } } @@ -1022,7 +1023,7 @@ sub set_privileges { $env{'user.home'}, "Role ".$role); &Apache::lonnet::appenv( - 'request.role' => $role, + 'request.role' => $spec, 'request.role.domain' => $dcdom, 'request.course.sec' => ''); my $tadv=0;