--- loncom/lonnet/perl/lonnet.pm 2001/12/21 17:02:35 1.192 +++ loncom/lonnet/perl/lonnet.pm 2001/12/28 19:48:42 1.195 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.192 2001/12/21 17:02:35 www Exp $ +# $Id: lonnet.pm,v 1.195 2001/12/28 19:48:42 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -64,7 +64,7 @@ # 12/5 Guy Albertelli # 12/6,12/7,12/12 Gerd Kortemeyer # 12/18 Scott Harrison -# 12/21 Gerd Kortemeyer +# 12/21,12/22,12/27,12/28 Gerd Kortemeyer # ### @@ -84,6 +84,7 @@ use GDBM_File; use Apache::Constants qw(:common :http); use HTML::TokeParser; use Fcntl qw(:flock); +my $readit; # --------------------------------------------------------------------- Logging @@ -1274,11 +1275,16 @@ sub del { # -------------------------------------------------------------- dump interface sub dump { - my ($namespace,$udomain,$uname)=@_; + my ($namespace,$udomain,$uname,$regexp)=@_; if (!$udomain) { $udomain=$ENV{'user.domain'}; } if (!$uname) { $uname=$ENV{'user.name'}; } my $uhome=&homeserver($uname,$udomain); - my $rep=reply("dump:$udomain:$uname:$namespace",$uhome); + if ($regexp) { + $regexp=&escape($regexp); + } else { + $regexp='.'; + } + my $rep=reply("dump:$udomain:$uname:$namespace:$regexp",$uhome); my @pairs=split(/\&/,$rep); my %returnhash=(); foreach (@pairs) { @@ -1549,7 +1555,7 @@ sub allowed { if ($thisallowed=~/C/) { my $rolecode=(split(/\./,$ENV{'request.role'}))[0]; if ($ENV{'course.'.$ENV{'request.course.id'}.'.'.$priv.'.roles.denied'} - =~/\,$rolecode\,/) { + =~/$rolecode/) { &log($ENV{'user.domain'},$ENV{'user.name'},$ENV{'user.host'}, 'Denied by role: '.$priv.' for '.$uri.' as '.$rolecode.' in '. $ENV{'request.course.id'}); @@ -2550,6 +2556,7 @@ sub goodbye { BEGIN { # ------------------------------------------------------------ Read access.conf + unless ($readit) { { my $config=Apache::File->new("/etc/httpd/conf/access.conf"); @@ -2635,6 +2642,8 @@ $dumpcount=0; &logtouch(); &logthis('INFO: Read configuration'); +$readit=1; +} } 1; @@ -2855,8 +2864,9 @@ namesp ($udomain and $uname are optional =item * -dump($namespace,$udomain,$uname) : dumps the complete namespace into a hash -($udomain and $uname are optional) +dump($namespace,$udomain,$uname,$regexp) : +dumps the complete (or key matching regexp) namespace into a hash +($udomain, $uname and $regexp are optional) =item *