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

coding

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

+ 1 - 1
iOSClient/Data/NCManageDatabase.swift

@@ -972,7 +972,7 @@ class NCManageDatabase: NSObject {
         }
     }
 
-    @objc func deteleE2ETokenLock(account: String, serverUrl: String) {
+    @objc func deleteE2ETokenLock(account: String, serverUrl: String) {
 
         let realm = try! Realm()
 

+ 2 - 52
iOSClient/Networking/E2EE/NCNetworkingE2EE.swift

@@ -66,7 +66,7 @@ class NCNetworkingE2EE: NSObject {
 
         let lockE2EEFolderResults = await NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE")
         if lockE2EEFolderResults.error == .success {
-            NCManageDatabase.shared.deteleE2ETokenLock(account: account, serverUrl: serverUrl)
+            NCManageDatabase.shared.deleteE2ETokenLock(account: account, serverUrl: serverUrl)
         }
 
         return
@@ -79,59 +79,9 @@ class NCNetworkingE2EE: NSObject {
             for result in NCManageDatabase.shared.getE2EAllTokenLock(account: account) {
                 let lockE2EEFolderResults = await NextcloudKit.shared.lockE2EEFolder(fileId: result.fileId, e2eToken: result.e2eToken, method: "DELETE")
                 if lockE2EEFolderResults.error == .success {
-                    NCManageDatabase.shared.deteleE2ETokenLock(account: account, serverUrl: result.serverUrl)
+                    NCManageDatabase.shared.deleteE2ETokenLock(account: account, serverUrl: result.serverUrl)
                 }
             }
         }
     }
-
-    /*
-    func sendE2EMetadata(account: String, serverUrl: String, fileNameRename: String?, fileNameNewRename: String?, deleteE2eEncryption: NSPredicate?, urlBase: String, userId: String, upload: Bool = false) async -> (e2eToken: String?, error: NKError) {
-
-        // Lock
-        let lockResults = await lock(account: account, serverUrl: serverUrl)
-
-        if lockResults.error == .success, let e2eToken = lockResults.e2eToken, let directory = lockResults.directory {
-            let getE2EEMetadataResults = await NextcloudKit.shared.getE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken)
-
-            var method = "POST"
-            var e2eMetadataNew: String?
-
-            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 (e2eToken, NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: "")))
-                }
-                method = "PUT"
-            }
-
-            // Rename
-            if let fileNameRename = fileNameRename, let fileNameNewRename = fileNameNewRename {
-                NCManageDatabase.shared.renameFileE2eEncryption(serverUrl: serverUrl, fileNameIdentifier: fileNameRename, newFileName: fileNameNewRename, newFileNamePath: CCUtility.returnFileNamePath(fromFileName: fileNameNewRename, serverUrl: serverUrl, urlBase: urlBase, userId: userId, account: account))
-            }
-
-            // Delete
-            if let deleteE2eEncryption = deleteE2eEncryption {
-                NCManageDatabase.shared.deleteE2eEncryption(predicate: deleteE2eEncryption)
-            }
-
-            // Rebuild metadata for send it
-            if let tableE2eEncryption = NCManageDatabase.shared.getE2eEncryptions(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl)) {
-                e2eMetadataNew = NCEndToEndMetadata.shared.encoderMetadata(tableE2eEncryption, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl)
-            } else {
-                method = "DELETE"
-            }
-
-            // send metadata
-            let putE2EEMetadataResults =  await NextcloudKit.shared.putE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken, e2eMetadata: e2eMetadataNew, method: method)
-            if upload {
-                return (e2eToken, putE2EEMetadataResults.error)
-            } else {
-                let unlockResults = await unlock(account: account, serverUrl: serverUrl)
-                return (unlockResults.e2eToken, unlockResults.error)
-            }
-        } else {
-            return (lockResults.e2eToken, lockResults.error)
-        }
-    }
-    */
 }

+ 14 - 8
iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift

@@ -54,12 +54,12 @@ 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) {
+            if error == .success, let fileId = NCUtility.shared.ocIdToFileId(ocId: 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, fileId: fileId ,urlBase: urlBase, userId: userId)
+                    error = await createE2Ee(account: account, fileNameFolder: fileNameFolder, fileNameIdentifier: fileNameIdentifier, serverUrl: serverUrl, urlBase: urlBase, userId: userId)
                 }
             }
         }
@@ -73,12 +73,19 @@ class NCNetworkingE2EECreateFolder: NSObject {
         return error
     }
 
-    private func createE2Ee(account: String, fileNameFolder: String, fileNameIdentifier: String, serverUrl: String, e2eToken: String, fileId: String, urlBase: String, userId: String) async -> (NKError) {
+    private func createE2Ee(account: String, fileNameFolder: String, fileNameIdentifier: String, serverUrl: String,  urlBase: String, userId: String) async -> (NKError) {
 
         var key: NSString?
         var initializationVector: NSString?
         let object = tableE2eEncryption()
         var method = "POST"
+        var e2eMetadataNew: String?
+
+        // ** Lock **
+        let lockResults = await NCNetworkingE2EE.shared.lock(account: account, serverUrl: serverUrl)
+        guard lockResults.error == .success, let e2eToken = lockResults.e2eToken, let fileId = lockResults.fileId else {
+            return lockResults.error
+        }
 
         // Get last metadata
         let getE2EEMetadataResults = await NextcloudKit.shared.getE2EEMetadata(fileId: fileId, e2eToken: e2eToken)
@@ -110,14 +117,13 @@ class NCNetworkingE2EECreateFolder: NSObject {
         object.version = 1
         NCManageDatabase.shared.addE2eEncryption(object)
 
-        // Rebuild metadata
-        guard let tableE2eEncryption = NCManageDatabase.shared.getE2eEncryptions(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl)), let e2eMetadataNew = NCEndToEndMetadata.shared.encoderMetadata(tableE2eEncryption, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl) else {
-            return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
+        // Rebuild metadata for send it
+        if let tableE2eEncryption = NCManageDatabase.shared.getE2eEncryptions(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl)) {
+            e2eMetadataNew = NCEndToEndMetadata.shared.encoderMetadata(tableE2eEncryption, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl)
         }
 
         // send metadata
-        let putE2EEMetadataResults = await NextcloudKit.shared.putE2EEMetadata(fileId: fileId, e2eToken: e2eToken, e2eMetadata: e2eMetadataNew, method: method)
-        
+        let putE2EEMetadataResults =  await NextcloudKit.shared.putE2EEMetadata(fileId: fileId, e2eToken: e2eToken, e2eMetadata: e2eMetadataNew, method: method)
         return putE2EEMetadataResults.error
     }