[LON-CAPA-cvs] cvs: loncom /publisher lonpubdir.pm
www
www at source.lon-capa.org
Fri Oct 21 13:51:23 EDT 2011
www Fri Oct 21 17:51:23 2011 EDT
Modified files:
/loncom/publisher lonpubdir.pm
Log:
Toward Bug #1320
Index: loncom/publisher/lonpubdir.pm
diff -u loncom/publisher/lonpubdir.pm:1.126 loncom/publisher/lonpubdir.pm:1.127
--- loncom/publisher/lonpubdir.pm:1.126 Wed Mar 10 21:26:04 2010
+++ loncom/publisher/lonpubdir.pm Fri Oct 21 17:51:23 2011
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Construction Space Directory Lister
#
-# $Id: lonpubdir.pm,v 1.126 2010/03/10 21:26:04 droeschl Exp $
+# $Id: lonpubdir.pm,v 1.127 2011/10/21 17:51:23 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,48 +47,31 @@
my $r=shift;
- my $fn;
-
-
-
- $fn = getEffectiveUrl($r);
-
# Validate access to the construction space and get username at domain.
my $uname;
my $udom;
- ($uname,$udom)=
- &Apache::loncacc::constructaccess(
- $fn,$r->dir_config('lonDefDomain'));
+ ($uname,$udom)=&Apache::loncacc::constructaccess($r->uri);
unless (($uname) && ($udom)) {
- $r->log_reason($uname.':'.$udom.
- ' trying to list directory '.$env{'form.filename'}.
- ' ('.$fn.') - not authorized',
- $r->filename);
return HTTP_NOT_ACCEPTABLE;
}
- # Remove trailing / from directory name.
-
- $fn=~s/\/$//;
-
- unless ($fn) {
- $r->log_reason($env{'user.name'}.':'.$env{'user.domain'}.
- ' trying to list empty directory', $r->filename);
- return HTTP_NOT_FOUND;
- }
-
# ----------------------------------------------------------- Start page output
+ my $fn=$r->filename;
+
my $thisdisfn=$fn;
- $thisdisfn=~s/^\/home\/$uname\/public_html//; # subdirectory part of
- # construction space.
my $docroot=$r->dir_config('lonDocRoot'); # Apache londocument root.
+ $thisdisfn=~s/^\Q$docroot\E\/priv//;
+
+&Apache::lonnet::logthis("Thisdisfn: $thisdisfn");
- my $resdir=$docroot.'/res/'.$udom.'/'.$uname.$thisdisfn; # Resource directory
- my $targetdir=$udom.'/'.$uname.$thisdisfn; # Publiction target directory.
- my $linkdir='/priv/'.$uname.$thisdisfn; # Full URL name of constr space.
+ my $resdir=$docroot.'/res'.$thisdisfn; # Resource directory
+ my $targetdir='/res'.$thisdisfn; # Publication target directory.
+ my $linkdir='/priv'.$thisdisfn; # Full URL name of constr space.
+
+&Apache::lonnet::logthis("Values: $resdir $targetdir $linkdir");
my %bombs=&Apache::lonmsg::all_url_author_res_msg($uname,$udom);
@@ -141,41 +124,7 @@
);
return OK;
}
-#
-# Gets the effective URL of the request and returns it:
-# $effn = getEffectiveUrl($r);
-# $r - The Apache Request object.
-sub getEffectiveUrl {
- my $r = shift;
- my $fn;
-
- if ($env{'form.filename'}) { # If a form filename is defined.
- $fn=$env{'form.filename'};
- #
- # Replace the ~username of the URL with /home/username/public_html
- # so that we don't have to worry about ~ expansion internally.
- #
- $fn=~s/^https?\:\/\/[^\/]+\///;
- $fn=~s/^\///;
- $fn=~s{~($LONCAPA::username_re)}{/home/$1/public_html};
-
- # Remove trailing / strings (?)
-
- $fn=~s/\/[^\/]+$//;
- } else {
- # If no form is defined, use request filename.
- $fn = $r->filename();
- my $lonDocRoot=$r->dir_config('lonDocRoot');
- if ( $fn =~ /$lonDocRoot/ ) {
- #internal authentication, needs fixup.
- $fn = $r->uri(); # non users do not get the full path request
- # through SCRIPT_FILENAME
- $fn=~s{^/~($LONCAPA::username_re)}{/home/$1/public_html};
- }
- }
- $fn=~s/\/+/\//g;
- return $fn;
-}
+
#
# Output the header of the page. This includes:
# - The HTML header
More information about the LON-CAPA-cvs
mailing list