Explorar el Código

wsgidav: rewrite path for prefix usage

Bastien Sevajol (Algoo) hace 7 años
padre
commit
1ba1bf5ef1

+ 3 - 0
tracim/tracim/config/app_cfg.py Ver fichero

@@ -327,6 +327,9 @@ class CFG(object):
327 327
                 )
328 328
             )
329 329
 
330
+        if not self.WSGIDAV_CLIENT_BASE_URL.endswith('/'):
331
+            self.WSGIDAV_CLIENT_BASE_URL += '/'
332
+
330 333
 
331 334
     def get_tracker_js_content(self, js_tracker_file_path = None):
332 335
         js_tracker_file_path = tg.config.get('js_tracker_path', None)

+ 2 - 1
tracim/tracim/lib/webdav/sql_dav_provider.py Ver fichero

@@ -1,7 +1,7 @@
1 1
 # coding: utf8
2 2
 
3 3
 import re
4
-from os.path import basename, dirname, normpath
4
+from os.path import basename, dirname
5 5
 from sqlalchemy.orm.exc import NoResultFound
6 6
 from tracim.lib.webdav.utils import transform_to_bdd
7 7
 
@@ -18,6 +18,7 @@ from tracim.lib.user import UserApi
18 18
 from tracim.lib.workspace import WorkspaceApi
19 19
 from tracim.model.data import Content, Workspace
20 20
 from tracim.model.data import ContentType
21
+from tracim.lib.webdav.utils import normpath
21 22
 
22 23
 
23 24
 class Provider(DAVProvider):

+ 2 - 2
tracim/tracim/lib/webdav/sql_resources.py Ver fichero

@@ -5,8 +5,7 @@ import transaction
5 5
 import re
6 6
 from datetime import datetime
7 7
 from time import mktime
8
-from os.path import normpath, dirname, basename
9
-import mimetypes
8
+from os.path import dirname, basename
10 9
 
11 10
 from tracim.lib.content import ContentApi
12 11
 from tracim.lib.user import UserApi
@@ -24,6 +23,7 @@ from wsgidav import compat
24 23
 from wsgidav.dav_error import DAVError, HTTP_FORBIDDEN
25 24
 from wsgidav.dav_provider import DAVCollection, DAVNonCollection
26 25
 from wsgidav.dav_provider import _DAVResource
26
+from tracim.lib.webdav.utils import normpath
27 27
 
28 28
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
29 29
 

+ 9 - 0
tracim/tracim/lib/webdav/utils.py Ver fichero

@@ -8,6 +8,7 @@ import time
8 8
 from datetime import datetime
9 9
 
10 10
 import yaml
11
+from os.path import normpath as base_normpath
11 12
 from wsgidav import util
12 13
 from wsgidav import compat
13 14
 from wsgidav.middleware import BaseMiddleware
@@ -274,3 +275,11 @@ class TracimWsgiDavDebugFilter(BaseMiddleware):
274 275
                 dump_content['content'] = ElementTree.tostring(xml, 'utf-8')
275 276
 
276 277
             f.write(yaml.dump(dump_content, default_flow_style=False))
278
+
279
+
280
+def normpath(path):
281
+    if path == b'':
282
+        path = b'/'
283
+    elif path == '':
284
+        path = '/'
285
+    return base_normpath(path)