--- loncom/auth/lonroles.pm 2004/07/21 19:54:43 1.95
+++ loncom/auth/lonroles.pm 2004/11/09 15:52:29 1.102
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.95 2004/07/21 19:54:43 albertel Exp $
+# $Id: lonroles.pm,v 1.102 2004/11/09 15:52:29 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -46,8 +46,11 @@ sub redirect_user {
&Apache::loncommon::no_cache($r);
$r->send_http_header;
my $swinfo=&Apache::lonmenu::rawconfig();
+ my $navwindow;
if ($launch_nav eq 'on') {
- $swinfo.=&Apache::lonnavmaps::launch_win('now','no');
+ $navwindow.=&Apache::lonnavmaps::launch_win('now');
+ } else {
+ $navwindow.=&Apache::lonnavmaps::close();
}
my $bodytag=&Apache::loncommon::bodytag('Switching Role');
# Note to style police:
@@ -59,9 +62,10 @@ sub redirect_user {
$bodytag
-
+$navwindow
$msg
Continue
@@ -80,12 +84,12 @@ sub handler {
# ================================================================== Roles Init
-
if ($ENV{'form.selectrole'}) {
if ($ENV{'request.course.id'}) {
my %temp=('logout_'.$ENV{'request.course.id'} => time);
&Apache::lonnet::put('email_status',\%temp);
- }
+ &Apache::lonnet::delenv('user.state.'.$ENV{'request.course.id'});
+ }
&Apache::lonnet::appenv("request.course.id" => '',
"request.course.fn" => '',
"request.course.uri" => '',
@@ -95,21 +99,9 @@ sub handler {
"request.role.domain" => $ENV{'user.domain'});
foreach $envkey (keys %ENV) {
next if ($envkey!~/^user\.role\./);
- my (undef,undef,$role,@pwhere)=split(/\./,$envkey);
- my $where=join('.',@pwhere);
- my $trolecode=$role.'.'.$where;
+ my ($where,$trolecode,$role,$tstatus,$tend,$tstart);
+ &role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
if ($ENV{'form.'.$trolecode}) {
- my ($tstart,$tend)=split(/\./,$ENV{$envkey});
- my $tstatus='is';
- if ($tstart) {
- if ($tstart>$then) {
- $tstatus='future';
- }
- }
- if ($tend) {
- if ($tend<$then) { $tstatus='expired'; }
- if ($tend<$now) { $tstatus='will_not'; }
- }
if ($tstatus eq 'is') {
$where=~s/^\///;
my ($cdom,$cnum,$csec)=split(/\//,$where);
@@ -203,15 +195,15 @@ ENDENTERKEY
$ENV{'user.name'},
$ENV{'user.home'},
"Role ".$trolecode);
- my $tadv=0;
- if (($trolecode!~/^st/) &&
- ($trolecode!~/^ta/) &&
- ($trolecode!~/^cm/)) { $tadv=1; }
+
&Apache::lonnet::appenv(
- 'request.role' => $trolecode,
- 'request.role.adv' => $tadv,
+ 'request.role' => $trolecode,
'request.role.domain' => $cdom,
'request.course.sec' => $csec);
+ my $tadv=0;
+ if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; }
+ &Apache::lonnet::appenv('request.role.adv' => $tadv);
+
my $msg=&mt('Entering course ...');
if (($cnum) && ($role ne 'ca')) {
@@ -376,16 +368,13 @@ ENDHEADER
my $roletext;
my $sortkey;
if ($envkey=~/^user\.role\./) {
- my (undef,undef,$role,@pwhere)=split(/\./,$envkey);
+ my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont);
+ &role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend);
next if (!defined($role) || $role eq '');
- my $where=join('.',@pwhere);
- my $trolecode=$role.'.'.$where;
- my ($tstart,$tend)=split(/\./,$ENV{$envkey});
- my $tremark='';
- my $tstatus='is';
- my $tpstart=' ';
- my $tpend=' ';
- my $tfont='#000000';
+ $tremark='';
+ $tpstart=' ';
+ $tpend=' ';
+ $tfont='#000000';
if ($tstart) {
if ($tstart>$then) {
$tstatus='future';
@@ -457,7 +446,7 @@ ENDHEADER
$Apache::lonnet::hostname{$home}.
'/adm/login?domain='.$ENV{'user.domain'}.
'&username='.$ENV{'user.name'}.
- '&firsturl=/priv/'.$trest);
+ '&firsturl=/priv/'.$trest.'/');
}
#next if ($home eq 'no_host');
$home = $Apache::lonnet::hostname{$home};
@@ -481,7 +470,7 @@ ENDHEADER
$Apache::lonnet::hostname{$home}.
'/adm/login?domain='.$ENV{'user.domain'}.
'&username='.$ENV{'user.name'}.
- '&firsturl=/priv/'.$ENV{'user.name'});
+ '&firsturl=/priv/'.$ENV{'user.name'}.'/');
}
#next if ($home eq 'no_host');
$home = $Apache::lonnet::hostname{$home};
@@ -602,7 +591,7 @@ ENDHEADER
unless ($nochoose) { $r->print(' | '); }
$r->print(''.&mt('User Role').' | '.&mt('Extent').
' | '.&mt('Start').' | '.&mt('End').' | '.
- &mt('Remark').' | '."\n");
+ &mt('Remarks and Calendar Announcements').''."\n");
my $doheaders=-1;
foreach my $type ('Construction Space','Course','Domain','System') {
my $haverole=0;
@@ -617,7 +606,7 @@ ENDHEADER
my $output;
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) {
if ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/) {
- $output.=&mt($roletext{$sortrole{$which}});
+ $output.=$roletext{$sortrole{$which}};
}
}
if ($output) {
@@ -715,7 +704,33 @@ ENDHEADER
}
$r->print("