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, |