diff --git a/radicale/__init__.py b/radicale/__init__.py index 94003b8..0bc8d1d 100644 --- a/radicale/__init__.py +++ b/radicale/__init__.py @@ -532,9 +532,12 @@ class Application: items = itertools.chain([item], items) read_items, write_items = self.collect_allowed_items(items, user) headers = {"DAV": DAV_HEADERS, "Content-Type": "text/xml"} - answer = xmlutils.propfind( + status, answer = xmlutils.propfind( path, content, read_items, write_items, user) - return client.MULTI_STATUS, headers, answer + if status == client.FORBIDDEN: + return NOT_ALLOWED + else: + return status, headers, answer def do_PROPPATCH(self, environ, path, user): """Manage PROPPATCH request.""" diff --git a/radicale/xmlutils.py b/radicale/xmlutils.py index f195aeb..68c76d5 100644 --- a/radicale/xmlutils.py +++ b/radicale/xmlutils.py @@ -524,7 +524,7 @@ def propfind(path, xml_request, read_collections, write_collections, user): path, collection, props, user, write=False) multistatus.append(response) - return _pretty_xml(multistatus) + return client.MULTI_STATUS, _pretty_xml(multistatus) def _propfind_response(path, item, props, user, write=False):