| 
				
			 | 
			
			
				@@ -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 
			 |