version 1.104, 2004/11/09 18:18:02
|
version 1.106, 2004/11/11 22:18:23
|
Line 120 sub handler {
|
Line 120 sub handler {
|
"request.role" => 'cm', |
"request.role" => 'cm', |
"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 |
|
# course selection page |
|
my $dcflag = 0; |
|
if ($ENV{'form.dccourse'}) { |
|
my $dcdom = $ENV{'form.dcdomain'}; |
|
my $pickedcourse = $ENV{'form.dccourse'}; |
|
if ($dcdom && $pickedcourse) { |
|
unless ($ENV{'user.role.cc./'.$dcdom.'/'.$pickedcourse}) { |
|
if ($ENV{'user.role.dc./'.$dcdom.'/'}) { |
|
&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; |
|
} |
|
} |
|
} |
|
} |
|
|
foreach $envkey (keys %ENV) { |
foreach $envkey (keys %ENV) { |
next if ($envkey!~/^user\.role\./); |
next if ($envkey!~/^user\.role\./); |
my ($where,$trolecode,$role,$tstatus,$tend,$tstart); |
my ($where,$trolecode,$role,$tstatus,$tend,$tstart); |
Line 539 ENDHEADER
|
Line 566 ENDHEADER
|
'</font>'; |
'</font>'; |
} |
} |
} else { |
} else { |
my %newhash=Apache::lonnet::coursedescription |
my %newhash=&Apache::lonnet::coursedescription($tcourseid); |
($tcourseid); |
|
if (%newhash) { |
if (%newhash) { |
$sortkey=$role."\0".$tdom."\0".$newhash{'description'}. |
$sortkey=$role."\0".$tdom."\0".$newhash{'description'}. |
"\0".$envkey; |
"\0".$envkey; |
Line 676 ENDHEADER
|
Line 702 ENDHEADER
|
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) { |
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) { |
my $skiprole = 0; |
my $skiprole = 0; |
foreach my $dcdom (keys %dcroles) { |
foreach my $dcdom (keys %dcroles) { |
if ($sortrole{$which} =~ m-(dc|cc)\./$dcdom/-) { |
if ($sortrole{$which} =~ m-(dc)\./$dcdom/-) { |
$skiprole = 1; |
$skiprole = 1; |
last; |
last; |
} |
} |
Line 707 ENDHEADER
|
Line 733 ENDHEADER
|
$r->print("<tr bgcolor='#BBffBB'>". |
$r->print("<tr bgcolor='#BBffBB'>". |
"<td align='center' colspan='7'>".&mt($type)."</td>"); |
"<td align='center' colspan='7'>".&mt($type)."</td>"); |
} |
} |
$r->print($output); |
$r->print($output); |
} |
} |
} |
} |
} |
} |
Line 810 sub role_status {
|
Line 836 sub role_status {
|
$$trolecode=$$role.'.'.$$where; |
$$trolecode=$$role.'.'.$$where; |
($$tstart,$$tend)=split(/\./,$ENV{$rolekey}); |
($$tstart,$$tend)=split(/\./,$ENV{$rolekey}); |
$$tstatus='is'; |
$$tstatus='is'; |
if ($$tstart) { |
if ($$tstart && $$tstart>$then) { |
if ($$tstart>$then) { |
$$tstatus='future'; |
$$tstatus='future'; |
if ($$tstart<$now) { $$tstatus='will'; } |
if ($$tstart<$now) { $$tstatus='will'; } |
|
} |
|
} |
} |
if ($$tend) { |
if ($$tend) { |
if ($$tend<$then) { |
if ($$tend<$then) { |
Line 848 sub check_fordc {
|
Line 872 sub check_fordc {
|
my $dcdom = $1; |
my $dcdom = $1; |
my $livedc = 1; |
my $livedc = 1; |
my ($tstart,$tend)=split(/\./,$ENV{$envkey}); |
my ($tstart,$tend)=split(/\./,$ENV{$envkey}); |
if ($tstart) { |
if ($tstart && $tstart>$then) { $livedc = 0; } |
if ($tstart>$then) { |
if ($tend && $tend <$then) { $livedc = 0; } |
$livedc = 0; |
|
} |
|
} |
|
if ($tend) { |
|
if ($tend<$then) { |
|
$livedc = 0; |
|
} |
|
} |
|
if ($livedc) { |
if ($livedc) { |
$$dcroles{$dcdom} = $envkey; |
$$dcroles{$dcdom} = $envkey; |
$numdc ++; |
$numdc++; |
} |
} |
} |
} |
} |
} |
Line 1020 sub recent_filename {
|
Line 1036 sub recent_filename {
|
return 'nohist_recent_'.&Apache::lonnet::escape($area); |
return 'nohist_recent_'.&Apache::lonnet::escape($area); |
} |
} |
|
|
|
sub set_privileges { |
|
my ($dcdom,$pickedcourse) = @_; |
|
my $area = '/'.$dcdom.'/'.$pickedcourse; |
|
my $role = 'cc'; |
|
my $spec = $role.'.'.$area; |
|
my $userroles = &Apache::lonnet::set_arearole($role,$area,'','',$dcdom,$ENV{'user.name'}); |
|
my %ccrole = (); |
|
&Apache::lonnet::standard_roleprivs(\%ccrole,$role,$dcdom,$spec,$pickedcourse,$area); |
|
$userroles .= &Apache::lonnet::set_userprivs(\$userroles,\%ccrole); my @newprivs = split/\n/,$userroles; |
|
my %newccroles = (); |
|
foreach (@newprivs) { |
|
my ($key,$val) = split/=/,$_; |
|
$newccroles{$key} = $val; |
|
} |
|
&Apache::lonnet::appenv(%newccroles); |
|
&Apache::lonnet::log($ENV{'user.domain'}, |
|
$ENV{'user.name'}, |
|
$ENV{'user.home'}, |
|
"Role ".$role); |
|
|
|
&Apache::lonnet::appenv( |
|
'request.role' => $role, |
|
'request.role.domain' => $dcdom, |
|
'request.course.sec' => ''); |
|
my $tadv=0; |
|
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
|
&Apache::lonnet::appenv('request.role.adv' => $tadv); |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |
|
|