--- loncom/auth/lonroles.pm 2001/02/27 20:44:18 1.22
+++ loncom/auth/lonroles.pm 2001/07/06 15:11:19 1.27
@@ -9,6 +9,7 @@
# 12/08,12/28,
# 01/15/01 Gerd Kortemeyer
# 02/27/01 Scott Harrison
+# 03/02,05/03,05/25,05/30,06/01,07/06 Gerd Kortemeyer
package Apache::lonroles;
@@ -17,6 +18,7 @@ use Apache::lonnet();
use Apache::lonuserstate();
use Apache::Constants qw(:common);
use Apache::File();
+use Apache::lonmenu;
sub handler {
@@ -57,7 +59,8 @@ sub handler {
my ($cdom,$cnum,$csec)=split(/\//,$where);
&Apache::lonnet::appenv('request.role' => $trolecode,
'request.course.sec' => $csec);
- if ($cnum) {
+ my $msg='Entering course ...';
+ if (($cnum) && ($role ne 'ca')) {
my ($furl,$ferr)=
&Apache::lonuserstate::readmap($cdom.'/'.$cnum);
if (($ENV{'form.orgurl'}) &&
@@ -65,15 +68,26 @@ sub handler {
$r->internal_redirect($ENV{'form.orgurl'});
return OK;
} else {
+ unless ($ENV{'request.course.id'}) {
+ &Apache::lonnet::appenv(
+ "request.course.id" => $cdom.'_'.$cnum);
+ $furl='/adm/notfound.html';
+ $msg=
+ '
Could not initialize top-level map.
';
+ }
$r->content_type('text/html');
$r->send_http_header;
+ my $swinfo=&Apache::lonmenu::rawconfig;
print (<Entering Course
-Entering course ...
+
+$msg
ENDREDIR
@@ -93,12 +107,17 @@ ENDREDIR
$r->send_http_header;
return OK if $r->header_only;
+ my $swinfo=&Apache::lonmenu::rawconfig;
+
$r->print(<
LON-CAPA User Roles
-
+
ENDHEADER
# ------------------------------------------ Get Error Message from Environment
@@ -129,6 +148,11 @@ ENDHEADER
$r->print("Action : $msg\n
");
} else {
$r->print("LON-CAPA User Roles
");
+ if ($ENV{'user.error.msg'}) {
+ $r->print(
+ 'You need to choose another user role or '.
+ 'enter a specific course for this function
');
+ }
}
# -------------------------------------------------------- Choice or no choice?
if ($nochoose) {
@@ -157,6 +181,9 @@ ENDHEADER
$r->print('');
$r->print('');
}
+ $r->print('
Show all roles: print(' checked'); }
+ $r->print('>
');
# ----------------------------------------------------------------------- Table
$r->print('');
unless ($nochoose) { $r->print(' | '); }
@@ -181,14 +208,19 @@ ENDHEADER
$tpstart=localtime($tstart);
}
if ($tend) {
- if ($tend<$then) { $tstatus='expired'; }
- if ($tend<$now) { $tstatus='will_not'; }
+ if ($tend<$then) {
+ $tstatus='expired';
+ } elsif ($tend<$now) {
+ $tstatus='will_not';
+ }
$tpend=localtime($tend);
}
if ($ENV{'request.role'} eq $trolecode) {
$tstatus='selected';
}
my $tbg;
+ if (($tstatus eq 'is') || ($tstatus eq 'selected') ||
+ ($ENV{'form.showall'})) {
if ($tstatus eq 'is') {
$tbg='#77FF77';
} elsif ($tstatus eq 'future') {
@@ -218,6 +250,11 @@ ENDHEADER
my ($tdom,$trest,$tsection)=
split(/\//,Apache::lonnet::declutter($where));
if ($trest) {
+ if ($role eq 'ca') {
+ $ttype='Construction Space';
+ $twhere='User: '.$trest.'
Domain: '.$tdom;
+ $ENV{'course.'.$tdom.'_'.$trest.'.description'}='ca';
+ } else {
$ttype='Course';
if ($tsection) {
$ttype.='
Section/Group: '.$tsection;
@@ -234,6 +271,7 @@ ENDHEADER
$ENV{'course.'.$tcourseid.'.description'}=$twhere;
}
}
+ }
} elsif ($tdom) {
$ttype='Domain';
$twhere=$tdom;
@@ -255,6 +293,7 @@ ENDHEADER
$ttype.''.$twhere.' | '.$tpstart.
' | '.$tpend.
' | '.$tremark.' |
'."\n");
+ }
}
}
my $tremark='';
@@ -291,11 +330,16 @@ ENDHEADER
my ($tdom,$trest,$tsec)=
split(/\//,Apache::lonnet::declutter($where));
if ($trest) {
+ if ($ENV{'course.'.$tdom.'_'.$trest.'.description'} eq 'ca') {
+ $ttype='Construction Space';
+ $twhere='User: '.$trest.', Domain: '.$tdom;
+ } else {
$ttype='Course';
$twhere=$ENV{'course.'.$tdom.'_'.$trest.'.description'};
if ($tsec) {
$twhere.=' (Section/Group: '.$tsec.')';
}
+ }
} elsif ($tdom) {
$ttype='Domain';
$twhere=$tdom;