--- loncom/publisher/lonretrieve.pm 2001/05/24 21:43:05 1.12 +++ loncom/publisher/lonretrieve.pm 2001/08/20 13:18:41 1.14 @@ -11,7 +11,7 @@ # 03/23 Guy Albertelli # 03/24,03/29 Gerd Kortemeyer) # -# 03/31,04/03,05/02,05/09 Gerd Kortemeyer +# 03/31,04/03,05/02,05/09,06/23,08/20 Gerd Kortemeyer package Apache::lonretrieve; @@ -139,6 +139,21 @@ sub handler { my $fn; + +# Get query string for limited number of parameters + + map { + my ($name, $value) = split(/=/,$_); + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; + if ($name eq 'filename') { + unless ($ENV{'form.'.$name}) { + $ENV{'form.'.$name}=$value; + } + } + } (split(/&/,$ENV{'QUERY_STRING'})); + + if ($ENV{'form.filename'}) { $fn=$ENV{'form.filename'}; $fn=~s/^http\:\/\/[^\/]+//; @@ -158,9 +173,9 @@ sub handler { my $uname; my $udom; - unless (($uname,$udom)= - &Apache::loncacc::constructaccess( - $fn,$r->dir_config('lonDefDomain'))) { + ($uname,$udom)= + &Apache::loncacc::constructaccess($fn,$r->dir_config('lonDefDomain')); + unless (($uname) && ($udom)) { $r->log_reason($uname.' at '.$udom. ' trying to publish file '.$ENV{'form.filename'}. ' ('.$fn.') - not authorized',