diff options
| author | Harry (OpenERP) <hmo@tinyerp.com> | 2010-07-20 18:35:13 +0530 |
|---|---|---|
| committer | Harry (OpenERP) <hmo@tinyerp.com> | 2010-07-20 18:35:13 +0530 |
| commit | 77f62a88a314a905e5ffc73cffd72d68ddfe33db (patch) | |
| tree | edc70351000fba9ea5a4ab27a3f680c5844e9e82 /addons/document_webdav/webdav_server.py | |
| parent | 90234707dc901a81935570274c52a5327940b66e (diff) | |
| parent | 1eea693ecadd3829fa729a727a154c23a1df6ab6 (diff) | |
[MERGE] merged new api of document module
bzr revid: hmo@tinyerp.com-20100720130513-3t2cbyvns3hlj6qn
Diffstat (limited to 'addons/document_webdav/webdav_server.py')
| -rw-r--r-- | addons/document_webdav/webdav_server.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py index 610e51a0f07..9f9f2733a68 100644 --- a/addons/document_webdav/webdav_server.py +++ b/addons/document_webdav/webdav_server.py @@ -78,6 +78,18 @@ class DAVHandler(FixSendError,DAVRequestHandler): self.baseuri = "http://%s:%d/"% (self.server.server_name, self.server.server_port) self.IFACE_CLASS = openerp_dav_handler(self, self.verbose) + def copymove(self, CLASS): + """ Our uri scheme removes the /webdav/ component from there, so we + need to mangle the header, too. + """ + dest = self.headers['Destination'] + up = urlparse.urlparse(urllib.unquote(self.headers['Destination'])) + if up.path.startswith(self.davpath): + self.headers['Destination'] = up.path[len(self.davpath):] + else: + raise DAV_Forbidden("Not allowed to copy/move outside webdav path") + DAVRequestHandler.copymove(self, CLASS) + def get_davpath(self): return self.davpath @@ -175,6 +187,11 @@ class DAVHandler(FixSendError,DAVRequestHandler): self.send_body(None, '201', 'Created', '', headers=headers) + def do_DELETE(self): + try: + DAVRequestHandler.do_DELETE(self) + except DAV_Error, (ec, dd): + return self.send_status(ec) from service.http_server import reg_http_service,OpenERPAuthProvider |
