--- loncom/lontrans.pm 2003/11/12 21:37:07 1.6 +++ loncom/lontrans.pm 2004/03/31 17:02:51 1.7 @@ -1,7 +1,7 @@ # The LearningOnline Network # URL translation for User Files # -# $Id: lontrans.pm,v 1.6 2003/11/12 21:37:07 albertel Exp $ +# $Id: lontrans.pm,v 1.7 2004/03/31 17:02:51 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,14 +33,21 @@ use Apache::Constants qw(:common :remote use Apache::lonnet(); use Apache::File(); use Apache::loncommon; +use LONCAPA::Configuration; sub handler { my $r = shift; - if ($r->uri=~m|^/uploaded/|) { - my (undef,undef,$udom,$uname,$ufile)=split(/\//,$r->uri); - $ufile=~s/^[\~\.]+//; - $r->filename(&Apache::loncommon::propath($udom,$uname). - '/userfiles/'.$ufile); + my $configvars = &LONCAPA::Configuration::read_conf('loncapa.conf'); + if ($r->uri=~m|^(/raw)?/uploaded/|) { + my $fn = $r->uri(); + $fn=~s/^\/raw//; + my (undef,undef,$udom,$uname,@ufile)=split(/\//,$fn); + $ufile[-1]=~s/^[\~\.]+//; + my $chome=&Apache::lonnet::homeserver($uname,$udom); + if ($chome eq $$configvars{'lonHostID'}) { + $r->filename(&Apache::loncommon::propath($udom,$uname). + '/userfiles/'.(join('/',@ufile))); + } } elsif ($r->uri=~m|^/~|) { #internal authentication, needs fixup. my $fn = $r->uri(); # non users do not get the full path request