[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