Kaynağa Gözat

Merge pull request #94 from tracim/fix/simple_webdav_fix

Tracim 5 yıl önce
ebeveyn
işleme
76084e116b
No account linked to committer's email

+ 50 - 8
tracim/lib/webdav/dav_provider.py Dosyayı Görüntüle

@@ -70,7 +70,12 @@ class Provider(DAVProvider):
70 70
 
71 71
         # If the requested path is the root, then we return a RootResource resource
72 72
         if path == root_path:
73
-            return resources.RootResource(path, environ, user=user, session=session)
73
+            return resources.RootResource(
74
+                path=path,
75
+                environ=environ,
76
+                user=user,
77
+                session=session
78
+            )
74 79
 
75 80
         workspace_api = WorkspaceApi(
76 81
             current_user=user,
@@ -111,10 +116,24 @@ class Provider(DAVProvider):
111 116
 
112 117
         # Easy cases : path either end with /.deleted, /.archived or /.history, then we return corresponding resources
113 118
         if path.endswith(SpecialFolderExtension.Archived) and self._show_archive:
114
-            return resources.ArchivedFolderResource(path, environ, workspace, content)
119
+            return resources.ArchivedFolderResource(
120
+                path=path,
121
+                environ=environ,
122
+                workspace=workspace,
123
+                user=user,
124
+                content=content,
125
+                session=session,
126
+            )
115 127
 
116 128
         if path.endswith(SpecialFolderExtension.Deleted) and self._show_delete:
117
-            return resources.DeletedFolderResource(path, environ, workspace, content)
129
+            return resources.DeletedFolderResource(
130
+                path=path,
131
+                environ=environ,
132
+                workspace=workspace,
133
+                user=user,
134
+                content=content,
135
+                session=session,
136
+            )
118 137
 
119 138
         if path.endswith(SpecialFolderExtension.History) and self._show_history:
120 139
             is_deleted_folder = re.search(r'/\.deleted/\.history$', path) is not None
@@ -124,7 +143,15 @@ class Provider(DAVProvider):
124 143
                 else HistoryType.Archived if is_archived_folder \
125 144
                 else HistoryType.Standard
126 145
 
127
-            return resources.HistoryFolderResource(path, environ, workspace, content, type)
146
+            return resources.HistoryFolderResource(
147
+                path=path,
148
+                environ=environ,
149
+                workspace=workspace,
150
+                user=user,
151
+                content=content,
152
+                session=session,
153
+                type=type
154
+            )
128 155
 
129 156
         # Now that's more complicated, we're trying to find out if the path end with /.history/file_name
130 157
         is_history_file_folder = re.search(r'/\.history/([^/]+)$', path) is not None
@@ -133,9 +160,10 @@ class Provider(DAVProvider):
133 160
             return resources.HistoryFileFolderResource(
134 161
                 path=path,
135 162
                 environ=environ,
136
-                content=content
163
+                user=user,
164
+                content=content,
165
+                session=session,
137 166
             )
138
-
139 167
         # And here next step :
140 168
         is_history_file = re.search(r'/\.history/[^/]+/\((\d+) - [a-zA-Z]+\) .+', path) is not None
141 169
 
@@ -147,9 +175,23 @@ class Provider(DAVProvider):
147 175
             content = self.get_content_from_revision(content_revision, content_api)
148 176
 
149 177
             if content.type == ContentType.File:
150
-                return resources.HistoryFileResource(path, environ, content, content_revision)
178
+                return resources.HistoryFileResource(
179
+                    path=path,
180
+                    environ=environ,
181
+                    user=user,
182
+                    content=content,
183
+                    content_revision=content_revision,
184
+                    session=session,
185
+                )
151 186
             else:
152
-                return resources.HistoryOtherFile(path, environ, content, content_revision)
187
+                return resources.HistoryOtherFile(
188
+                    path=path,
189
+                    environ=environ,
190
+                    user=user,
191
+                    content=content,
192
+                    content_revision=content_revision,
193
+                    session=session,
194
+                )
153 195
 
154 196
         # And if we're still going, the client is asking for a standard Folder/File/Page/Thread so we check the type7
155 197
         # and return the corresponding resource

+ 2 - 0
tracim/lib/webdav/resources.py Dosyayı Görüntüle

@@ -516,6 +516,7 @@ class FolderResource(WorkspaceResource):
516 516
         workspace_api = WorkspaceApi(
517 517
             current_user=self.user,
518 518
             session=self.session,
519
+            config=self.provider.app_config,
519 520
         )
520 521
         workspace = self.provider.get_workspace_from_path(
521 522
             normpath(destpath), workspace_api
@@ -1308,6 +1309,7 @@ class FileResource(DAVNonCollection):
1308 1309
         workspace_api = WorkspaceApi(
1309 1310
             current_user=self.user,
1310 1311
             session=self.session,
1312
+            config=self.provider.app_config,
1311 1313
         )
1312 1314
         content_api = ContentApi(
1313 1315
             current_user=self.user,