--- loncom/auth/lonroles.pm 2000/09/29 14:36:30 1.6
+++ loncom/auth/lonroles.pm 2000/10/02 21:34:58 1.9
@@ -4,12 +4,14 @@
# (Login Screen
# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14 Gerd Kortemeyer)
# 11/23 Gerd Kortemeyer)
-# 1/14,03/06,06/01,07/22,07/24,07/25,09/04,09/06,09/28,09/29 Gerd Kortemeyer
+# 1/14,03/06,06/01,07/22,07/24,07/25,
+# 09/04,09/06,09/28,09/29,09/30,10/2 Gerd Kortemeyer
#
package Apache::lonroles;
use strict;
use Apache::lonnet();
+use Apache::lonuserstate();
use Apache::Constants qw(:common);
use Apache::File();
@@ -24,9 +26,12 @@ sub handler {
LON-CAPA User Roles
-
-
ENDHEADER
+ if ($ENV{'form.orgurl'}) {
+ $r->print('');
+ }
+ $r->print('');
my $now=time;
my $then=$ENV{'user.login.time'};
@@ -54,14 +59,12 @@ ENDHEADER
}
if ($tstatus eq 'is') {
&Apache::lonnet::appenv('request.role' => $trolecode);
-
- if ($where=~/\.course$/) {
-# $r->print(
-# &Apache::lonuserstate::readmap('/res/msu/korte/foo.course','phy231',$fn).
- }
-
- $r->print("Yeah!");
-
+ my ($cdom,$cnum)=split(/\//,$where);
+ if ($cnum) {
+ &Apache::lonuserstate::readmap($where);
+ $r->print('Role initialized
');
+ return OK;
+ }
}
}
}
@@ -88,6 +91,10 @@ ENDHEADER
}
}
+# ---------------------------------------------- Get cached course descriptions
+
+ my %cdes=Apache::lonnet::dump('coursedescriptions');
+
# -------------------------------------------------------- Generate Page Output
# --------------------------------------------------------------- Error Header?
if ($error) {
@@ -185,16 +192,28 @@ ENDHEADER
}
my $ttype;
my $twhere;
- my ($tres,$tdom,$trest)=split(/\//,$where);
+ my ($tdom,$trest)=
+ split(/\//,Apache::lonnet::declutter($where));
if ($trest) {
$ttype='Course';
- $twhere=$tdom.'/'.$trest;
+ my $tcourseid=$tdom.'/'.$trest;
+ if ($cdes{$tcourseid}) {
+ $twhere=$cdes{$tcourseid};
+ } else {
+ my %newhash=Apache::lonnet::coursedescription($tcourseid);
+ if (%newhash) {
+ $twhere=$newhash{'description'};
+ } else {
+ $twhere='Currently not available';
+ }
+ $cdes{$tcourseid}=$twhere;
+ }
} elsif ($tdom) {
$ttype='Domain';
$twhere=$tdom;
} else {
$ttype='System';
- $twhere='/';
+ $twhere='system wide';
}
$r->print('');
@@ -227,10 +246,11 @@ ENDHEADER
my $where=join('.',@pwhere);
my $ttype;
my $twhere;
- my ($tres,$tdom,$trest)=split(/\//,$where);
+ my ($tdom,$trest)=
+ split(/\//,Apache::lonnet::declutter($where));
if ($trest) {
$ttype='Course';
- $twhere=$tdom.'/'.$trest;
+ $twhere=$cdes{$tdom.'/'.$trest};
} elsif ($tdom) {
$ttype='Domain';
$twhere=$tdom;