--- loncom/lontrans.pm 2002/08/08 13:45:21 1.2 +++ loncom/lontrans.pm 2002/09/30 20:32:45 1.3 @@ -1,7 +1,7 @@ # The LearningOnline Network # URL translation for User Files # -# $Id: lontrans.pm,v 1.2 2002/08/08 13:45:21 www Exp $ +# $Id: lontrans.pm,v 1.3 2002/09/30 20:32:45 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,15 +41,22 @@ sub propath { $subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/; my $proname="$Apache::lonnet::perlvar{'lonUsersDir'}/$udom/$subdir/$uname"; return $proname; -} +} sub handler { my $r = shift; - unless ($r->uri=~/^\/uploaded\//) { return DECLINED; } - my ($dum1,$dum2,$udom,$uname,$ufile)=split(/\//,$r->uri); - $ufile=~s/^[\~\.]+//; - $r->filename(&propath($udom,$uname).'/userfiles/'.$ufile); + if ($r->uri=~m|^/uploaded/|) { + my ($dum1,$dum2,$udom,$uname,$ufile)=split(/\//,$r->uri); + $ufile=~s/^[\~\.]+//; + $r->filename(&propath($udom,$uname).'/userfiles/'.$ufile); + } elsif ($r->uri=~m|^/~|) { + #internal authentication, needs fixup. + my $fn = $r->uri(); # non users do not get the full path request + # through SCRIPT_FILENAME + $fn=~s|^/~(\w+)|/home/$1/public_html|; + $r->filename($fn); + } else { return DECLINED; } } 1;