예제 #1
0
    def get_resource_inst(self, path, environ):
        fp = self._loc_to_file_path(path, environ)
        if not os.path.exists(fp):
            if environ['REQUEST_METHOD'] == 'PUT':
                head, _ = os.path.split(fp)
                os.makedirs(head, exist_ok=True)
            return None

        if os.path.isdir(fp):
            return FolderResource(path, environ, fp)
        return FileResource(path, environ, fp)
예제 #2
0
    def getResourceInst(self, path, environ):
        """Return info dictionary for path.

        See DAVProvider.getResourceInst()
        """
        self._count_getResourceInst += 1
        fp = self._locToFilePath(path)
        if not os.path.exists(fp):
            return None

        if os.path.isdir(fp):
            return FolderResource(path, environ, fp)
        return FileResource(path, environ, fp)
예제 #3
0
파일: webdav.py 프로젝트: zootos/INGInious
    def getResourceInst(self, path, environ):
        """Return info dictionary for path.

        See DAVProvider.getResourceInst()
        """
        self._count_getResourceInst += 1
        fp = self._locToFilePath(path)
        if not os.path.exists(fp):
            return None

        if os.path.isdir(fp):
            return FolderResource(path, environ, fp)

        # course.yaml needs a special protection
        inner_path = self._get_inner_path(path)
        if len(inner_path) == 1 and inner_path[0] in ["course.yaml", "course.json"]:
            return INGIniousDAVCourseFile(path, environ, fp, self.course_factory, self._get_course_id(path))

        return FileResource(path, environ, fp)
예제 #4
0
 def delete(self):
     if os.path.isfile(self._filePath):
         FileResource.delete(self)
     else:
         self.removeAllProperties(True)
         self.removeAllLocks(True)
예제 #5
0
 def __init__(self, path, environ, fp, pathMapper):
     FileResource.__init__(self, path, environ, fp)
     _WTDAVResource.__init__(self, pathMapper)