Pārlūkot izejas kodu

wsgidav: rewrite path for prefix usage

Bastien Sevajol (Algoo) 8 gadus atpakaļ
vecāks
revīzija
1ba1bf5ef1

+ 3 - 0
tracim/tracim/config/app_cfg.py Parādīt failu

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
     def get_tracker_js_content(self, js_tracker_file_path = None):
334
     def get_tracker_js_content(self, js_tracker_file_path = None):
332
         js_tracker_file_path = tg.config.get('js_tracker_path', None)
335
         js_tracker_file_path = tg.config.get('js_tracker_path', None)

+ 2 - 1
tracim/tracim/lib/webdav/sql_dav_provider.py Parādīt failu

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

+ 2 - 2
tracim/tracim/lib/webdav/sql_resources.py Parādīt failu

5
 import re
5
 import re
6
 from datetime import datetime
6
 from datetime import datetime
7
 from time import mktime
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
 from tracim.lib.content import ContentApi
10
 from tracim.lib.content import ContentApi
12
 from tracim.lib.user import UserApi
11
 from tracim.lib.user import UserApi
24
 from wsgidav.dav_error import DAVError, HTTP_FORBIDDEN
23
 from wsgidav.dav_error import DAVError, HTTP_FORBIDDEN
25
 from wsgidav.dav_provider import DAVCollection, DAVNonCollection
24
 from wsgidav.dav_provider import DAVCollection, DAVNonCollection
26
 from wsgidav.dav_provider import _DAVResource
25
 from wsgidav.dav_provider import _DAVResource
26
+from tracim.lib.webdav.utils import normpath
27
 
27
 
28
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
28
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
29
 
29
 

+ 9 - 0
tracim/tracim/lib/webdav/utils.py Parādīt failu

8
 from datetime import datetime
8
 from datetime import datetime
9
 
9
 
10
 import yaml
10
 import yaml
11
+from os.path import normpath as base_normpath
11
 from wsgidav import util
12
 from wsgidav import util
12
 from wsgidav import compat
13
 from wsgidav import compat
13
 from wsgidav.middleware import BaseMiddleware
14
 from wsgidav.middleware import BaseMiddleware
274
                 dump_content['content'] = ElementTree.tostring(xml, 'utf-8')
275
                 dump_content['content'] = ElementTree.tostring(xml, 'utf-8')
275
 
276
 
276
             f.write(yaml.dump(dump_content, default_flow_style=False))
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)