--- loncom/lonnet/perl/lonnet.pm 2003/08/12 19:46:04 1.399 +++ loncom/lonnet/perl/lonnet.pm 2003/08/14 22:26:40 1.402 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.399 2003/08/12 19:46:04 www Exp $ +# $Id: lonnet.pm,v 1.402 2003/08/14 22:26:40 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1284,6 +1284,25 @@ sub get_course_adv_roles { return %returnhash; } +sub get_my_roles { + my ($uname,$udom)=@_; + unless (defined($uname)) { $uname=$ENV{'user.name'}; } + unless (defined($udom)) { $udom=$ENV{'user.domain'}; } + my %dumphash= + &dump('nohist_userroles',$udom,$uname); + my %returnhash=(); + my $now=time; + foreach (keys %dumphash) { + my ($tend,$tstart)=split(/\:/,$dumphash{$_}); + if (($tstart) && ($tstart<0)) { next; } + if (($tend) && ($tend<$now)) { next; } + if (($tstart) && ($now<$tstart)) { next; } + my ($role,$username,$domain,$section)=split(/\:/,$_); + $returnhash{$username.':'.$domain.':'.$role}=$tstart.':'.$tend; + } + return %returnhash; +} + # ----------------------------------------------------- Frontpage Announcements # # @@ -2237,6 +2256,9 @@ sub customaccess { $access=($effect eq 'allow'); last; } + if ($realm eq '' && $role eq '') { + $access=($effect eq 'allow'); + } } return $access; } @@ -3535,14 +3557,15 @@ sub metadata { if ($liburi) { $liburi=&declutter($liburi); $filename=$liburi; - } + } else { + delete($metacache{$uri.':packages'}); + } my %metathesekeys=(); unless ($filename=~/\.meta$/) { $filename.='.meta'; } my $metastring=&getfile(&filelocation('',&clutter($filename))); my $parser=HTML::LCParser->new(\$metastring); my $token; undef %metathesekeys; - delete($metacache{$uri.':packages'}); while ($token=$parser->get_token) { if ($token->[0] eq 'S') { if (defined($token->[2]->{'package'})) {