예제 #1
0
 def path(self, name):
     try:
         path = safe_join(self.location, name)
     except ValueError:
         raise SuspiciousOperation("Attempted access to '%s' denied." %
                                   name)
     return os.path.normpath(path)
예제 #2
0
    def file_path(self, url):
        """
        Returns the path to the media file on disk for the given URL.

        The passed URL is assumed to begin with ADMIN_MEDIA_PREFIX.  If the
        resultant file path is outside the media directory, then a ValueError
        is raised.
        """
        # Remove ADMIN_MEDIA_PREFIX.
        relative_url = url[len(self.media_url):]
        relative_path = six.moves.urllib.request.url2pathname(relative_url)
        return safe_join(self.media_dir, relative_path)
예제 #3
0
파일: basehttp.py 프로젝트: 0xmilk/appscale
    def file_path(self, url):
        """
        Returns the path to the media file on disk for the given URL.

        The passed URL is assumed to begin with ADMIN_MEDIA_PREFIX.  If the
        resultant file path is outside the media directory, then a ValueError
        is raised.
        """
        # Remove ADMIN_MEDIA_PREFIX.
        relative_url = url[len(self.media_url):]
        relative_path = urllib.url2pathname(relative_url)
        return safe_join(self.media_dir, relative_path)
예제 #4
0
 def get_template_sources(self, template_name, template_dirs=None):
     """
     Returns the absolute paths to "template_name", when appended to each
     directory in "template_dirs". Any paths that don't lie inside one of the
     template dirs are excluded from the result set, for security reasons.
     """
     if not template_dirs:
         template_dirs = app_template_dirs
     for template_dir in template_dirs:
         try:
             yield safe_join(template_dir, template_name)
         except UnicodeDecodeError:
             # The template dir name was a bytestring that wasn't valid UTF-8.
             raise
         except ValueError:
             # The joined path was located outside of template_dir.
             pass
예제 #5
0
 def get_template_sources(self, template_name, template_dirs=None):
     """
     Returns the absolute paths to "template_name", when appended to each
     directory in "template_dirs". Any paths that don't lie inside one of the
     template dirs are excluded from the result set, for security reasons.
     """
     if not template_dirs:
         template_dirs = app_template_dirs
     for template_dir in template_dirs:
         try:
             yield safe_join(template_dir, template_name)
         except UnicodeDecodeError:
             # The template dir name was a bytestring that wasn't valid UTF-8.
             raise
         except ValueError:
             # The joined path was located outside of template_dir.
             pass
예제 #6
0
파일: storage.py 프로젝트: 0xmilk/appscale
 def path(self, name):
     try:
         path = safe_join(self.location, name)
     except ValueError:
         raise SuspiciousOperation("Attempted access to '%s' denied." % name)
     return os.path.normpath(path)