]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Delete new updated items that are now E2EE
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 9 Mar 2023 12:16:32 +0000 (13:16 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:23 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift

index d4103cbc2179014c7fdcb589091e95e22e55bb6e..11bc6943c300061689e70379d52c78b3d2fb89e3 100644 (file)
@@ -197,6 +197,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
 
             let allUpdates = newMetadatas + updatedMetadatas
             var allFpItemUpdates: [FileProviderItem] = []
+            var allFpItemDeletionsIdentifiers = Array(deletedMetadatas.map { NSFileProviderItemIdentifier($0.ocId) })
 
             for updMetadata in allUpdates {
                 guard let parentItemIdentifier = parentItemIdentifierFromMetadata(updMetadata) else {
@@ -204,11 +205,18 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
                     continue
                 }
 
+                guard !updMetadata.e2eEncrypted else {
+                    // Precaution, if all goes well in NKFile conversion then this should not happen
+                    // TODO: Remove when E2EE supported
+                    NSLog("Encrypted metadata in changes enumeration, adding to deletions")
+                    allFpItemDeletionsIdentifiers.append(NSFileProviderItemIdentifier(updMetadata.ocId))
+                    continue
+                }
+
                 let fpItem = FileProviderItem(metadata: updMetadata, parentItemIdentifier: parentItemIdentifier, ncKit: self.ncKit)
                 allFpItemUpdates.append(fpItem)
             }
 
-            let allFpItemDeletionsIdentifiers = Array(deletedMetadatas.map { NSFileProviderItemIdentifier($0.ocId) })
             observer.didUpdate(allFpItemUpdates)
             observer.didDeleteItems(withIdentifiers: allFpItemDeletionsIdentifiers)
         }