Use server dav files URL in enumerator
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 10 Jan 2023 20:21:28 +0000 (21:21 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:10 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudAccount.swift

index 1b0fa2cb86e019b1385b7e038405138fc259b550..5c49c88deed0e1fd16fb4a25cb4d645b111b8794 100644 (file)
@@ -18,15 +18,13 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
     
     private let enumeratedItemIdentifier: NSFileProviderItemIdentifier
     private let anchor = NSFileProviderSyncAnchor("an anchor".data(using: .utf8)!)
-    let ncAccount: NextcloudAccount
     var serverUrl: URL?
     
-    init(enumeratedItemIdentifier: NSFileProviderItemIdentifier, ncAccount: NextcloudAccount) {
+    init(enumeratedItemIdentifier: NSFileProviderItemIdentifier, ncAccount: NextcloudAccount?) {
         self.enumeratedItemIdentifier = enumeratedItemIdentifier
-        self.ncAccount = ncAccount
 
         if enumeratedItemIdentifier == .rootContainer {
-            self.serverUrl = ncAccount.serverUrl
+            self.serverUrl = ncAccount?.davFilesUrl
         } else {
             let dbManager = NextcloudFilesDatabaseManager.shared
             if let itemMetadata = dbManager.fileMetadataFromFileProviderItemIdentifier(enumeratedItemIdentifier),
index 365bcfe624bf0d6f13e680a84bf10029626a3ce9..fe2614348575254c64e26afbc707d60dfcf07ea2 100644 (file)
@@ -16,9 +16,9 @@ import Foundation
 import FileProvider
 
 class NextcloudAccount: NSObject {
-    let webDavUrlSuffix: String = "/remote.php/dav"
+    let webDavFilesUrlSuffix: String = "/remote.php/dav/files/"
     let username, password: String?
-    let serverUrl, davUrl: URL?
+    let serverUrl, davFilesUrl: URL?
 
     var isNull: Bool {
         return username?.isEmpty ?? false || serverUrl?.absoluteString.isEmpty ?? false
@@ -46,12 +46,12 @@ class NextcloudAccount: NSObject {
             return nil
         }
 
-        let davUrlUrl = serverUrlUrl.appendingPathComponent(webDavUrlSuffix)
+        let davFilesUrlUrl = serverUrlUrl.appendingPathComponent(webDavFilesUrlSuffix + usernameString)
 
         username = usernameString
         password = passwordString
         serverUrl = serverUrlUrl
-        davUrl = davUrlUrl
+        davFilesUrl = davFilesUrlUrl
 
         super.init()
     }