Эх сурвалжийг харах

coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 жил өмнө
parent
commit
52419700ea

+ 13 - 7
iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift

@@ -37,6 +37,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
         var fileNameFolder = CCUtility.removeForbiddenCharactersServer(fileName)!
         var serverUrlFileName = ""
         var fileNameIdentifier = ""
+        var ocId: String?
         var error = NKError()
 
         fileNameFolder = NCUtilityFileSystem.shared.createFileName(fileNameFolder, serverUrl: serverUrl, account: account)
@@ -51,15 +52,13 @@ class NCNetworkingE2EECreateFolder: NSObject {
 
             let createFolderResults = await NextcloudKit.shared.createFolder(serverUrlFileName: serverUrlFileName, options: NKRequestOptions(customHeader: ["e2e-token": e2eToken]))
             error = createFolderResults.error
+            ocId = createFolderResults.ocId
             if error == .success, let fileId = NCUtility.shared.ocIdToFileId(ocId: createFolderResults.ocId) {
                 // Mark folder as E2EE
                 let markE2EEFolderResults = await NextcloudKit.shared.markE2EEFolder(fileId: fileId, delete: false)
                 error = markE2EEFolderResults.error
                 if error == .success {
                     error = await createE2Ee(account: account, fileNameFolder: fileNameFolder, fileNameIdentifier: fileNameIdentifier, serverUrl: serverUrl, e2eToken: e2eToken, directory: directory ,urlBase: urlBase, userId: userId)
-                    if error == .success, let ocId = createFolderResults.ocId {
-                        NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterCreateFolder, userInfo: ["ocId": ocId, "serverUrl": serverUrl, "account": account, "e2ee": true])
-                    }
                 }
             }
 
@@ -67,6 +66,9 @@ class NCNetworkingE2EECreateFolder: NSObject {
             await NCNetworkingE2EE.shared.unlock(account: account, serverUrl: serverUrl)
         }
 
+        if error == .success, let ocId = ocId {
+            NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterCreateFolder, userInfo: ["ocId": ocId, "serverUrl": serverUrl, "account": account, "e2ee": true])
+        }
         return error
     }
 
@@ -75,6 +77,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
         var key: NSString?
         var initializationVector: NSString?
         let object = tableE2eEncryption()
+        var method = "POST"
 
         NCEndToEndEncryption.sharedManager()?.encryptkey(&key, initializationVector: &initializationVector)
         object.account = account
@@ -97,9 +100,12 @@ class NCNetworkingE2EECreateFolder: NSObject {
         NCManageDatabase.shared.addE2eEncryption(object)
 
         // Get last metadata
-        let getE2EEMetadataResults = await NextcloudKit.shared.getE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken)
-        if getE2EEMetadataResults.error == .success, let e2eMetadata = getE2EEMetadataResults.e2eMetadata, !NCEndToEndMetadata.shared.decoderMetadata(e2eMetadata, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId) {
-            return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
+        let getE2EEMetadataResults = await  NextcloudKit.shared.getE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken)
+        if getE2EEMetadataResults.error == .success, let e2eMetadata = getE2EEMetadataResults.e2eMetadata {
+            if !NCEndToEndMetadata.shared.decoderMetadata(e2eMetadata, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId) {
+                return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
+            }
+            method = "PUT"
         }
 
         // Rebuild metadata
@@ -108,7 +114,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
         }
 
         // send metadata
-        let putE2EEMetadataResults = await NextcloudKit.shared.putE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken, e2eMetadata: e2eMetadataNew, method: "PUT")
+        let putE2EEMetadataResults = await NextcloudKit.shared.putE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken, e2eMetadata: e2eMetadataNew, method: method)
         return putE2EEMetadataResults.error
     }
 

+ 5 - 1
iOSClient/Networking/E2EE/NCNetworkingE2EERename.swift

@@ -77,12 +77,16 @@ class NCNetworkingE2EERename: NSObject {
                 do {
                     try FileManager.default.moveItem(atPath: atPath, toPath: toPath)
                 } catch { }
-                NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterRenameFile, userInfo: ["ocId": metadata.ocId, "account": metadata.account])
             }
 
             // Unlock
             await NCNetworkingE2EE.shared.unlock(account: metadata.account, serverUrl: metadata.serverUrl)
         }
+
+        if error == .success {
+            NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterRenameFile, userInfo: ["ocId": metadata.ocId, "account": metadata.account])
+        }
+
         return error
     }
 }