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

deletefilefolder add account

Marino Faggiana 6 жил өмнө
parent
commit
ad3b2fe787

+ 3 - 5
File Provider Extension/FileProviderExtension+Network.swift

@@ -31,12 +31,10 @@ extension FileProviderExtension {
     
     func deleteFile(withIdentifier itemIdentifier: NSFileProviderItemIdentifier, parentItemIdentifier: NSFileProviderItemIdentifier, metadata: tableMetadata) {
         
-        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
-        
         let path = metadata.serverUrl + "/" + metadata.fileName
-        
-        ocNetworking?.deleteFileOrFolder(path, completion: { (message, errorCode) in
-            
+
+        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
+        ocNetworking?.deleteFileOrFolder(path, account: providerData.account, completion: { (account, message, errorCode) in
             if errorCode == 0 || errorCode == 404 {
                 self.deleteFileSystem(for: metadata, serverUrl: metadata.serverUrl, itemIdentifier: itemIdentifier)
             }

+ 43 - 40
iOSClient/Main/NCMainCommon.swift

@@ -846,7 +846,7 @@ class NCMainCommon: NSObject {
         var completionErrorCode: Int = 0
         var completionMessage = ""
         
-        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: appDelegate.activeUser, withUserID: appDelegate.activeUserID, withPassword: appDelegate.activePassword, withUrl: appDelegate.activeUrl)
+        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
         
         for metadata in metadatas {
             
@@ -854,51 +854,54 @@ class NCMainCommon: NSObject {
             
             let path = metadata.serverUrl + "/" + metadata.fileName
             
-            ocNetworking?.deleteFileOrFolder(path, completion: { (message, errorCode) in
+            ocNetworking?.deleteFileOrFolder(path, account:appDelegate.activeAccount, completion: { (account, message, errorCode) in
                 
-                count += 1
-
-                if errorCode == 0 || errorCode == 404 {
-                    
-                    do {
-                        try FileManager.default.removeItem(atPath: CCUtility.getDirectoryProviderStorageFileID(metadata.fileID))
-                    } catch { }
-                    
-                    NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
-                    NCManageDatabase.sharedInstance.deleteLocalFile(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
-                    NCManageDatabase.sharedInstance.deletePhotos(fileID: metadata.fileID)
-                    
-                    if metadata.directory {
-                        NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: CCUtility.stringAppendServerUrl(serverUrl, addFileName: metadata.fileName), account: metadata.account)
-                    }
+                if account == self.appDelegate.activeAccount {
                     
-                    if (e2ee) {
-                        NCManageDatabase.sharedInstance.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameIdentifier == %@", metadata.account, serverUrl, metadata.fileName))
-                    }
-                    
-                    self.appDelegate.filterFileID.remove(metadata.fileID)
-                    
-                } else {
-                    
-                    completionErrorCode = errorCode
-                    completionMessage = ""
-                    if message != nil {
-                        completionMessage = message!
+                    count += 1
+
+                    if errorCode == 0 || errorCode == 404 {
+                        
+                        do {
+                            try FileManager.default.removeItem(atPath: CCUtility.getDirectoryProviderStorageFileID(metadata.fileID))
+                        } catch { }
+                        
+                        NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
+                        NCManageDatabase.sharedInstance.deleteLocalFile(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
+                        NCManageDatabase.sharedInstance.deletePhotos(fileID: metadata.fileID)
+                        
+                        if metadata.directory {
+                            NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: CCUtility.stringAppendServerUrl(serverUrl, addFileName: metadata.fileName), account: metadata.account)
+                        }
+                        
+                        if (e2ee) {
+                            NCManageDatabase.sharedInstance.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameIdentifier == %@", metadata.account, serverUrl, metadata.fileName))
+                        }
+                        
+                        self.appDelegate.filterFileID.remove(metadata.fileID)
+                        
+                    } else {
+                        
+                        completionErrorCode = errorCode
+                        completionMessage = ""
+                        if message != nil {
+                            completionMessage = message!
+                        }
+                        
+                        self.appDelegate.filterFileID.remove(metadata.fileID)
                     }
                     
-                    self.appDelegate.filterFileID.remove(metadata.fileID)
-                }
-                
-                if count == metadatas.count {
-                    if e2ee {
-                        DispatchQueue.global().async {
-                            NCNetworkingEndToEnd.sharedManager().rebuildAndSendMetadata(onServerUrl: serverUrl, account: self.appDelegate.activeAccount, user: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl)
-                            DispatchQueue.main.async {
-                                completion(completionErrorCode, completionMessage)
+                    if count == metadatas.count {
+                        if e2ee {
+                            DispatchQueue.global().async {
+                                NCNetworkingEndToEnd.sharedManager().rebuildAndSendMetadata(onServerUrl: serverUrl, account: self.appDelegate.activeAccount, user: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl)
+                                DispatchQueue.main.async {
+                                    completion(completionErrorCode, completionMessage)
+                                }
                             }
+                        } else {
+                            completion(completionErrorCode, completionMessage)
                         }
-                    } else {
-                        completion(completionErrorCode, completionMessage)
                     }
                 }
             })

+ 1 - 1
iOSClient/Networking/OCNetworking.h

@@ -59,7 +59,7 @@
 
 - (void)readFile:(NSString *)fileName serverUrl:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSString *account, tableMetadata *metadata))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure;
 
-- (void)deleteFileOrFolder:(NSString *)path completion:(void (^)(NSString *message, NSInteger errorCode))completion;
+- (void)deleteFileOrFolder:(NSString *)path account:(NSString *)account completion:(void (^)(NSString *account, NSString *message, NSInteger errorCode))completion;
 
 - (void)createFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSString *account, NSString *fileID, NSDate *date))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure;
 

+ 9 - 6
iOSClient/Networking/OCNetworking.m

@@ -1043,18 +1043,21 @@
 #pragma mark =====  Delete =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)deleteFileOrFolder:(NSString *)path completion:(void (^)(NSString *message, NSInteger errorCode))completion
+- (void)deleteFileOrFolder:(NSString *)path account:(NSString *)account completion:(void (^)(NSString *account, NSString *message, NSInteger errorCode))completion
 {    
-//    NSString *serverFilePath = [NSString stringWithFormat:@"%@/%@", serverUrl, fileName];
+    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountWithPredicate:[NSPredicate predicateWithFormat:@"account == %@", account]];
+    if (tableAccount == nil) {
+        completion(account, NSLocalizedString(@"_error_user_not_available_", nil), k_CCErrorUserNotAvailble);
+    }
     
     OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
 
-    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setCredentialsWithUser:tableAccount.user andUserID:tableAccount.userID andPassword:tableAccount.password];
     [communication setUserAgent:[CCUtility getUserAgent]];
     
     [communication deleteFileOrFolder:path onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
         
-        completion(nil, 0);
+        completion(account, nil, 0);
         
     } failureRquest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
@@ -1075,9 +1078,9 @@
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
         
         // Activity
-        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl fileID:@"" action:k_activityDebugActionDeleteFileFolder selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addActivityClient:_activeUrl fileID:@"" action:k_activityDebugActionDeleteFileFolder selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:tableAccount.url];
         
-        completion(message, errorCode);
+        completion(account, message, errorCode);
     }];
 }
 

+ 3 - 4
iOSClient/Trash/NCTrash.swift

@@ -523,15 +523,14 @@ class NCTrash: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
             return
         }
         
-        let ocNetworking = OCnetworking.init(delegate: self, metadataNet: nil, withUser: appDelegate.activeUser, withUserID: appDelegate.activeUserID, withPassword: appDelegate.activePassword, withUrl: appDelegate.activeUrl)
-        
         let path = appDelegate.activeUrl + tableTrash.filePath + tableTrash.fileName
 
-        ocNetworking?.deleteFileOrFolder(path, completion: { (message, errorCode) in
+        let ocNetworking = OCnetworking.init(delegate: self, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
+        ocNetworking?.deleteFileOrFolder(path, account:appDelegate.activeAccount, completion: { (account, message, errorCode) in
             
             if errorCode == 0 {
                 
-                NCManageDatabase.sharedInstance.deleteTrash(fileID: fileID, account: self.appDelegate.activeAccount)
+                NCManageDatabase.sharedInstance.deleteTrash(fileID: fileID, account: account!)
                 
                 self.loadDatasource()