--- loncom/lonnet/perl/lonnet.pm 2000/10/25 10:55:46 1.48 +++ loncom/lonnet/perl/lonnet.pm 2000/10/26 15:29:17 1.51 @@ -66,7 +66,7 @@ # 08/22,08/28,08/31,09/01,09/02,09/04,09/05,09/25,09/28,09/30 Gerd Kortemeyer # 10/04 Gerd Kortemeyer # 10/04 Guy Albertelli -# 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25 Gerd Kortemeyer +# 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25,10/26 Gerd Kortemeyer package Apache::lonnet; @@ -492,6 +492,7 @@ sub restore { sub coursedescription { my $courseid=shift; $courseid=~s/^\///; + $courseid=~s/\_/\//g; my ($cdomain,$cnum)=split(/\//,$courseid); my $chome=homeserver($cnum,$cdomain); if ($chome ne 'no_host') { @@ -513,7 +514,7 @@ sub coursedescription { $returnhash{'url'}='/res/'.declutter($returnhash{'url'}); $returnhash{'fn'}=$perlvar{'lonDaemons'}.'/tmp/'. $ENV{'user.name'}.'_'.$cdomain.'_'.$cnum; - put ('coursedescriptions',%cachehash); + put ('nohist_coursedescriptions',%cachehash); return %returnhash; } } @@ -551,6 +552,7 @@ sub rolesinit { } } if (($area ne '') && ($trole ne '')) { + my $spec=$trole.'.'.$area; my ($tdummy,$tdomain,$trest)=split(/\//,$area); if ($trole =~ /^cr\//) { my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$trole); @@ -562,21 +564,27 @@ sub rolesinit { if (($roledef ne 'con_lost') && ($roledef ne '')) { my ($syspriv,$dompriv,$coursepriv)= split(/\_/,unescape($roledef)); - $allroles{'/'}.=':'.$syspriv; + $allroles{'cm./'}.=':'.$syspriv; + $allroles{$spec.'./'}.=':'.$syspriv; if ($tdomain ne '') { - $allroles{'/'.$tdomain.'/'}.=':'.$dompriv; + $allroles{'cm./'.$tdomain.'/'}.=':'.$dompriv; + $allroles{$spec.'./'.$tdomain.'/'}.=':'.$dompriv; if ($trest ne '') { - $allroles{$area}.=':'.$coursepriv; + $allroles{'cm.'.$area}.=':'.$coursepriv; + $allroles{$spec.'.'.$area}.=':'.$coursepriv; } } } } } else { - $allroles{'/'}.=':'.$pr{$trole.':s'}; + $allroles{'cm./'}.=':'.$pr{$trole.':s'}; + $allroles{$spec.'./'}.=':'.$pr{$trole.':s'}; if ($tdomain ne '') { - $allroles{'/'.$tdomain.'/'}.=':'.$pr{$trole.':d'}; + $allroles{'cm./'.$tdomain.'/'}.=':'.$pr{$trole.':d'}; + $allroles{$spec.'./'.$tdomain.'/'}.=':'.$pr{$trole.':d'}; if ($trest ne '') { - $allroles{$area}.=':'.$pr{$trole.':c'}; + $allroles{'cm.'.$area}.=':'.$pr{$trole.':c'}; + $allroles{$spec.'.'.$area}.=':'.$pr{$trole.':c'}; } } } @@ -1076,7 +1084,8 @@ sub varval { } elsif ($realm eq 'course') { # ---------------------------------------------------------- course.description if ($space eq 'description') { - return &coursedescription($ENV{'request.course.id'}); + my %reply=&coursedescription($ENV{'request.course.id'}); + return $reply{'description'}; # ------------------------------------------------------------------- course.id } elsif ($space eq 'id') { return $ENV{'request.course.id'};