Exemplo n.º 1
0
 def report(self, environ, body, resources_by_hrefs, properties, base_href,
            resource, depth):
     # TODO(jelmer): Verify that depth == "0"
     # TODO(jelmer): Verify that resource is an the right resource type
     requested = None
     hrefs = []
     for el in body:
         if el.tag in ('{DAV:}prop', '{DAV:}allprop', '{DAV:}propname'):
             requested = el
         elif el.tag == '{DAV:}href':
             hrefs.append(webdav.read_href_element(el))
         else:
             raise webdav.BadRequestError('Unknown tag %s in report %s' %
                                          (el.tag, self.name))
     for (href, resource) in resources_by_hrefs(hrefs):
         if resource is None:
             yield webdav.Status(href, '404 Not Found', propstat=[])
         else:
             propstat = get_properties_with_data(self.data_property, href,
                                                 resource, properties,
                                                 environ, requested)
             yield webdav.Status(href, '200 OK', propstat=list(propstat))
Exemplo n.º 2
0
 async def report(
     self,
     environ,
     body,
     resources_by_hrefs,
     properties,
     base_href,
     resource,
     depth,
 ):
     # TODO(jelmer): Verify that depth == "0"
     # TODO(jelmer): Verify that resource is an the right resource type
     requested = None
     hrefs = []
     for el in body:
         if el.tag in ("{DAV:}prop", "{DAV:}allprop", "{DAV:}propname"):
             requested = el
         elif el.tag == "{DAV:}href":
             hrefs.append(webdav.read_href_element(el))
         else:
             raise webdav.BadRequestError("Unknown tag %s in report %s" %
                                          (el.tag, self.name))
     for (href, resource) in resources_by_hrefs(hrefs):
         if resource is None:
             yield webdav.Status(href, "404 Not Found", propstat=[])
         else:
             propstat = get_properties_with_data(
                 self.data_property,
                 href,
                 resource,
                 properties,
                 environ,
                 requested,
             )
             yield webdav.Status(href,
                                 "200 OK",
                                 propstat=[s async for s in propstat])