--- loncom/lontrans.pm 2002/08/02 14:45:04 1.1 +++ loncom/lontrans.pm 2004/04/01 20:18:29 1.8 @@ -1,7 +1,7 @@ # The LearningOnline Network # URL translation for User Files # -# $Id: lontrans.pm,v 1.1 2002/08/02 14:45:04 www Exp $ +# $Id: lontrans.pm,v 1.8 2004/04/01 20:18:29 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,10 +32,28 @@ use strict; use Apache::Constants qw(:common :remotehost); use Apache::lonnet(); use Apache::File(); +use Apache::loncommon; sub handler { my $r = shift; - return DECLINED; + 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 $Apache::lonnet::perlvar{'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 + # through SCRIPT_FILENAME + $fn=~s|^/~(\w+)|/home/$1/public_html|; + $r->filename($fn); + } else { return DECLINED; } + return OK; } 1;