Doc Webdav: reply with relative URIs when the request was relative.
[odoo/odoo.git] / addons / document_webdav / webdav.py
index 484a105..bb2b8ca 100644 (file)
@@ -152,7 +152,12 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
         fileloc = fileloc.encode('utf-8')
     href=doc.createElement("D:href")
     davpath = self._dataclass.parent.get_davpath()
-    hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
+    if uparts[0] and uparts[1]:
+        hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
+    else:
+        # When the request has been relative, we don't have enough data to
+        # reply with absolute url here.
+        hurl = '%s%s' % (davpath, urllib.quote(fileloc))
     huri=doc.createTextNode(hurl)
     href.appendChild(huri)
     re.appendChild(href)
@@ -226,7 +231,12 @@ def mk_propname_response(self,uri,propnames,doc):
         fileloc = fileloc.encode('utf-8')
     href=doc.createElement("D:href")
     davpath = self._dataclass.parent.get_davpath()
-    hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
+    if uparts[0] and uparts[1]:
+        hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
+    else:
+        # When the request has been relative, we don't have enough data to
+        # reply with absolute url here.
+        hurl = '%s%s' % (davpath, urllib.quote(fileloc))
     huri=doc.createTextNode(hurl)
     href.appendChild(huri)
     re.appendChild(href)