Browse Source

rename move add account

Marino Faggiana 6 years ago
parent
commit
77d4d83526

+ 13 - 13
File Provider Extension/FileProviderExtension+Actions.swift

@@ -148,14 +148,14 @@ extension FileProviderExtension {
         let serverUrlTo = tableDirectoryTo.serverUrl
         let fileNameTo = serverUrlTo + "/" + itemFrom.filename
         
-        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
-        ocNetworking?.moveFileOrFolder(fileNameFrom, fileNameTo: fileNameTo, success: {
+        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
+        ocNetworking?.moveFileOrFolder(fileNameFrom, fileNameTo: fileNameTo, account: providerData.account, success: { (account) in
             
             if metadataFrom.directory {
-                NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: self.providerData.account)
-                _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrlTo, account: self.providerData.account)
+                NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: account!)
+                _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrlTo, account: account!)
             }
-                
+            
             NCManageDatabase.sharedInstance.moveMetadata(fileID: fileIDFrom, serverUrlTo: serverUrlTo)
             
             guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", fileIDFrom)) else {
@@ -169,12 +169,12 @@ extension FileProviderExtension {
                 self.providerData.fileProviderSignalUpdateContainerItem[itemIdentifier] = item
                 self.providerData.fileProviderSignalUpdateWorkingSetItem[itemIdentifier] = item
             }
-
+            
             self.providerData.signalEnumerator(for: [parentItemIdentifier, .workingSet])
-
+            
             completionHandler(item, nil)
             
-        }, failure: { (errorMessage, errorCode) in
+        }, failure: { (account, errorMessage, errorCode) in
             completionHandler(nil, NSFileProviderError(.serverUnreachable))
         })
     }
@@ -201,9 +201,9 @@ extension FileProviderExtension {
         let fileNamePathFrom = metadata.serverUrl + "/" + fileNameFrom
         let fileNamePathTo = metadata.serverUrl + "/" + itemName
         
-        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
-        ocNetworking?.moveFileOrFolder(fileNamePathFrom, fileNameTo: fileNamePathTo, success: {
-            
+        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
+        ocNetworking?.moveFileOrFolder(fileNamePathFrom, fileNameTo: fileNamePathTo, account: providerData.account, success: { (account) in
+
             // Rename metadata
             guard let metadata = NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: itemName, fileID: metadata.fileID) else {
                 completionHandler(nil, NSFileProviderError(.noSuchItem))
@@ -212,7 +212,7 @@ extension FileProviderExtension {
             
             if metadata.directory {
                 
-                NCManageDatabase.sharedInstance.setDirectory(serverUrl: fileNamePathFrom, serverUrlTo: fileNamePathTo, etag: nil, fileID: nil, encrypted: directoryTable.e2eEncrypted, account: self.providerData.account)
+                NCManageDatabase.sharedInstance.setDirectory(serverUrl: fileNamePathFrom, serverUrlTo: fileNamePathTo, etag: nil, fileID: nil, encrypted: directoryTable.e2eEncrypted, account: account!)
                 
             } else {
                 
@@ -241,7 +241,7 @@ extension FileProviderExtension {
 
             completionHandler(item, nil)
             
-        }, failure: { (errorMessage, errorCode) in
+        }, failure: { (account, errorMessage, errorCode) in
             completionHandler(nil, NSFileProviderError(.serverUnreachable))
         })
     }

+ 0 - 1
iOSClient/CCGlobal.h

@@ -225,7 +225,6 @@
 #define actionGetSharePermissionsFile                   @"getSharePermissionsFile"
 #define actionGetExternalSitesServer                    @"getExternalSitesServer"
 #define actionMiddlewarePing                            @"middlewarePing"
-#define actionMoveFileOrFolder                          @"moveFileOrFolder"
 #define actionReadShareServer                           @"readShareServer"
 #define actionSearch                                    @"search"
 #define actionSetNotificationServer                     @"setNotificationServer"

+ 102 - 145
iOSClient/Main/CCMain.m

@@ -1479,50 +1479,12 @@
 }
 
 #pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Rename / Move =====
+#pragma mark ===== Rename =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)renameSuccess:(CCMetadataNet *)metadataNet
-{
-    // Rename metadata
-    (void) [[NCManageDatabase sharedInstance] renameMetadataWithFileNameTo:metadataNet.fileNameTo fileID:metadataNet.fileID];
-    
-    if (metadataNet.directory) {
-        
-        NSString *serverUrl = [CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadataNet.fileName];
-        NSString *serverUrlTo = [CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadataNet.fileNameTo];
-
-        tableDirectory *directoryTable = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, serverUrl]];
-        if (directoryTable == nil) {
-            [self renameMoveFileOrFolderFailure:metadataNet message:@"Internal error, ServerUrl not found" errorCode:0];
-            return;
-        }
-        
-        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:serverUrl serverUrlTo:serverUrlTo etag:nil fileID:nil encrypted:directoryTable.e2eEncrypted account:appDelegate.activeAccount];
-
-    } else {
-        
-        [[NCManageDatabase sharedInstance] setLocalFileWithFileID:metadataNet.fileID date:nil exifDate:nil exifLatitude:nil exifLongitude:nil fileName:metadataNet.fileNameTo etag:nil];
-        
-        // Move file system
-
-        NSString *atPath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryProviderStorageFileID:metadataNet.fileID], metadataNet.fileName];
-        NSString *toPath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryProviderStorageFileID:metadataNet.fileID], metadataNet.fileNameTo];
-        
-        [[NSFileManager defaultManager] moveItemAtPath:atPath toPath:toPath error:nil];
-        
-        NSString *atPathIcon = [CCUtility getDirectoryProviderStorageIconFileID:metadataNet.fileID fileNameView:metadataNet.fileName];
-        NSString *toPathIcon = [CCUtility getDirectoryProviderStorageIconFileID:metadataNet.fileID fileNameView:metadataNet.fileNameTo];
-        
-        [[NSFileManager defaultManager] moveItemAtPath:atPathIcon toPath:toPathIcon error:nil];
-    }
-    
-    [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:metadataNet.serverUrl fileID:metadataNet.fileID action:k_action_MOD];
-}
-
 - (void)renameFile:(NSArray *)arguments
 {
-    tableMetadata* metadata = [arguments objectAtIndex:0];
+    tableMetadata *metadata = [arguments objectAtIndex:0];
     NSString *fileName = [arguments objectAtIndex:1];
     
     // E2EE
@@ -1589,101 +1551,59 @@
             
         } failure:^(NSString *account, NSString *message, NSInteger errorCode) {
             
-            CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:appDelegate.activeAccount];
-            
-            metadataNet.action = actionMoveFileOrFolder;
-            metadataNet.directory = metadata.directory;
-            metadataNet.fileID = metadata.fileID;
-            metadataNet.fileName = metadata.fileName;
-            metadataNet.fileNameTo = fileNameNew;
-            metadataNet.fileNameView = metadata.fileNameView;
-            metadataNet.selector = selectorRename;
-            metadataNet.serverUrl = metadata.serverUrl;
-            metadataNet.serverUrlTo = metadata.serverUrl;
-            
-            [appDelegate addNetworkingOperationQueue:appDelegate.netQueue delegate:self metadataNet:metadataNet];
-        }];
-    }
-}
+            NSString *fileNamePath = [NSString stringWithFormat:@"%@/%@", metadata.serverUrl, metadata.fileName];
+            NSString *fileNameToPath = [NSString stringWithFormat:@"%@/%@", metadata.serverUrl, fileNameNew];
 
-- (void)renameMoveFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
-{
-    if ([message length] > 0) {
-        
-        if ([metadataNet.selector isEqualToString:selectorRename]) {
-            [appDelegate messageNotification:@"_rename_" description:message visible:true delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-        
-        if ([metadataNet.selector isEqualToString:selectorMove]) {
-            [appDelegate messageNotification:@"_move_" description:message visible:true delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-    }
-    
-    if ([metadataNet.selector isEqualToString:selectorMove]) {
-        
-        [_hud hideHud];
-    
-        if (message && errorCode != kOCErrorServerUnauthorized)
-            [appDelegate messageNotification:@"_move_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+            [ocNetworking moveFileOrFolder:fileNamePath fileNameTo:fileNameToPath account:appDelegate.activeAccount success:^(NSString *account) {
                 
-        // End Select Table View
-        [self tableViewSelect:NO];
-        
-        // reload Datasource
-        if (_isSearchMode)
-            [self readFolder:metadataNet.serverUrl];
-        else
-            [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:self.serverUrl fileID:nil action:k_action_NULL];
-    }
-}
-
-- (void)moveSuccess:(CCMetadataNet *)metadataNet
-{
-    [_queueSelector removeObject:metadataNet.selector];
-    
-    if ([_queueSelector count] == 0) {
-    
-        [_hud hideHud];
-        
-        if (metadataNet.directory) {
-            [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:[CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadataNet.fileName] account:metadataNet.account];
-        }
-        
-        [[NCManageDatabase sharedInstance] moveMetadataWithFileID:metadataNet.fileID serverUrlTo:metadataNet.serverUrlTo];
-        
-        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:metadataNet.serverUrl account:metadataNet.account];
-        [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:metadataNet.serverUrlTo account:metadataNet.account];
+                // Rename metadata
+                (void) [[NCManageDatabase sharedInstance] renameMetadataWithFileNameTo:fileNameNew fileID:metadata.fileID];
+                
+                if (metadata.directory) {
+                    
+                    NSString *serverUrl = [CCUtility stringAppendServerUrl:metadata.serverUrl addFileName:metadata.fileName];
+                    NSString *serverUrlTo = [CCUtility stringAppendServerUrl:metadata.serverUrl addFileName:fileNameNew];
+                    
+                    tableDirectory *directoryTable = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", account, metadata.serverUrl]];
+                    if (directoryTable == nil) {
+                        [appDelegate messageNotification:@"_rename_" description:@"Internal error, ServerUrl not found" visible:true delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:k_CCErrorInternalError];
+                        return;
+                    }
+                    
+                    [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:serverUrl serverUrlTo:serverUrlTo etag:nil fileID:nil encrypted:directoryTable.e2eEncrypted account:appDelegate.activeAccount];
+                    
+                } else {
+                    
+                    [[NCManageDatabase sharedInstance] setLocalFileWithFileID:metadata.fileID date:nil exifDate:nil exifLatitude:nil exifLongitude:nil fileName:fileNameNew etag:nil];
+                    
+                    // Move file system
+                    
+                    NSString *atPath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryProviderStorageFileID:metadata.fileID], metadata.fileName];
+                    NSString *toPath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryProviderStorageFileID:metadata.fileID], fileNameNew];
+                    
+                    [[NSFileManager defaultManager] moveItemAtPath:atPath toPath:toPath error:nil];
+                    
+                    NSString *atPathIcon = [CCUtility getDirectoryProviderStorageIconFileID:metadata.fileID fileNameView:metadata.fileName];
+                    NSString *toPathIcon = [CCUtility getDirectoryProviderStorageIconFileID:metadata.fileID fileNameView:fileNameNew];
+                    
+                    [[NSFileManager defaultManager] moveItemAtPath:atPathIcon toPath:toPathIcon error:nil];
+                }
+                
+                [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:metadata.serverUrl fileID:metadata.fileID action:k_action_MOD];
 
-        // next
-        [_selectedFileIDsMetadatas removeObjectForKey:metadataNet.fileID];
-        
-        if ([_selectedFileIDsMetadatas count] > 0) {
-        
-            NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
-            
-            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], metadataNet.serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
-            
-        } else {
-            
-            // End Select Table View
-            [self tableViewSelect:NO];
-            
-            // reload Datasource
-            if (_isSearchMode)
-                [self readFolder:metadataNet.serverUrl];
-            else
-                [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:self.serverUrl fileID:nil action:k_action_NULL];
-        }
+            } failure:^(NSString *account, NSString *message, NSInteger errorCode) {
+                [appDelegate messageNotification:@"_rename_" description:message visible:true delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+            }];
+        }];
     }
 }
 
-- (void)moveFileOrFolderMetadata:(NSArray *)arguments
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Move =====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)moveFileOrFolderMetadata:(tableMetadata *)metadata serverUrlTo:(NSString *)serverUrlTo numFile:(NSInteger)numFile ofFile:(NSInteger)ofFile
 {
-    tableMetadata *metadata = [arguments objectAtIndex:0];
-    NSString *serverUrlTo = [arguments objectAtIndex:1];
-    NSInteger numFile = [[arguments objectAtIndex:2] integerValue];
-    NSInteger ofFile = [[arguments objectAtIndex:3] integerValue];
-    
     OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:nil withUserID:nil withPassword:nil withUrl:nil];
     [ocNetworking readFile:metadata.fileName serverUrl:serverUrlTo account:appDelegate.activeAccount success:^(NSString *account, tableMetadata *metadata) {
     
@@ -1701,22 +1621,59 @@
         
     } failure:^(NSString *account, NSString *message, NSInteger errorCode) {
     
-        CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:appDelegate.activeAccount];
-        
-        metadataNet.action = actionMoveFileOrFolder;
-        metadataNet.directory = metadata.directory;
-        metadataNet.fileID = metadata.fileID;
-        metadataNet.fileName = metadata.fileName;
-        metadataNet.fileNameView = metadata.fileNameView;
-        metadataNet.fileNameTo = metadata.fileName;
-        metadataNet.etag = metadata.etag;
-        metadataNet.selector = selectorMove;
-        metadataNet.serverUrl = metadata.serverUrl;
-        metadataNet.serverUrlTo = serverUrlTo;
+        NSString *fileNamePath = [NSString stringWithFormat:@"%@/%@", metadata.serverUrl, metadata.fileName];
+        NSString *fileNameToPath = [NSString stringWithFormat:@"%@/%@", serverUrlTo, metadata.fileName];
         
-        [_queueSelector addObject:metadataNet.selector];
-        
-        [appDelegate addNetworkingOperationQueue:appDelegate.netQueue delegate:self metadataNet:metadataNet];
+        [ocNetworking moveFileOrFolder:fileNamePath fileNameTo:fileNameToPath account:appDelegate.activeAccount success:^(NSString *account) {
+            
+            [_hud hideHud];
+            
+            if (metadata.directory) {
+                [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:[CCUtility stringAppendServerUrl:metadata.serverUrl addFileName:metadata.fileName] account:account];
+            }
+            
+            [[NCManageDatabase sharedInstance] moveMetadataWithFileID:metadata.fileID serverUrlTo:serverUrlTo];
+            
+            [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:metadata.serverUrl account:account];
+            [[NCManageDatabase sharedInstance] clearDateReadWithServerUrl:serverUrlTo account:account];
+            
+            // next
+            [_selectedFileIDsMetadatas removeObjectForKey:metadata.fileID];
+            
+            if ([_selectedFileIDsMetadatas count] > 0) {
+                
+                NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
+                
+                [self moveFileOrFolderMetadata:[metadatas objectAtIndex:0] serverUrlTo:serverUrlTo numFile:[_selectedFileIDsMetadatas count] ofFile:_numSelectedFileIDsMetadatas];
+                
+            } else {
+                
+                // End Select Table View
+                [self tableViewSelect:NO];
+                
+                // reload Datasource
+                if (_isSearchMode)
+                    [self readFolder:metadata.serverUrl];
+                else
+                    [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:self.serverUrl fileID:nil action:k_action_NULL];
+            }
+            
+        } failure:^(NSString *account, NSString *message, NSInteger errorCode) {
+            
+            [_hud hideHud];
+            
+            if (message && errorCode != kOCErrorServerUnauthorized)
+                [appDelegate messageNotification:@"_move_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+            
+            // End Select Table View
+            [self tableViewSelect:NO];
+            
+            // reload Datasource
+            if (_isSearchMode)
+                [self readFolder:metadata.serverUrl];
+            else
+                [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:metadata.serverUrl fileID:nil action:k_action_NULL];
+        }];
         
         [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_move_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
     }];
@@ -1742,12 +1699,12 @@
             _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
             NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
             
-            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], serverUrl, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
+            [self moveFileOrFolderMetadata:[metadatas objectAtIndex:0] serverUrlTo:serverUrl numFile:[_selectedFileIDsMetadatas count] ofFile:_numSelectedFileIDsMetadatas];
             
         } else {
             
             _numSelectedFileIDsMetadatas = 1;
-            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[self.metadata, serverUrl, [NSNumber numberWithInteger:1], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
+            [self moveFileOrFolderMetadata:self.metadata serverUrlTo:serverUrl numFile:1 ofFile:_numSelectedFileIDsMetadatas];
         }
     }
 }

+ 3 - 3
iOSClient/Networking/OCNetworking.h

@@ -63,7 +63,7 @@
 
 - (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;
 
-- (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
+- (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo account:(NSString *)account success:(void (^)(NSString *account))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure;
 
 - (void)settingFavorite:(NSString *)fileName account:(NSString *)account favorite:(BOOL)favorite completion:(void (^)(NSString *account, NSString *message, NSInteger errorCode))completion;
 
@@ -93,11 +93,11 @@
 
 @optional
 
-- (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
-
+/*
 - (void)moveSuccess:(CCMetadataNet *)metadataNet;
 - (void)renameSuccess:(CCMetadataNet *)metadataNet;
 - (void)renameMoveFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+*/
 
 - (void)readSharedSuccess:(CCMetadataNet *)metadataNet items:(NSDictionary *)items openWindow:(BOOL)openWindow;
 - (void)unShareSuccess:(CCMetadataNet *)metadataNet;

+ 9 - 28
iOSClient/Networking/OCNetworking.m

@@ -1088,40 +1088,21 @@
 #pragma mark ===== Move =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)moveFileOrFolder
+- (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo account:(NSString *)account success:(void (^)(NSString *account))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure
 {
-    NSString *fileNamePath = [NSString stringWithFormat:@"%@/%@", _metadataNet.serverUrl, _metadataNet.fileName];
-    NSString *fileNameToPath = [NSString stringWithFormat:@"%@/%@", _metadataNet.serverUrlTo, _metadataNet.fileNameTo];
+    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountWithPredicate:[NSPredicate predicateWithFormat:@"account == %@", account]];
+    if (tableAccount == nil) {
+        failure(account, NSLocalizedString(@"_error_user_not_available_", nil), k_CCErrorUserNotAvailble);
+    }
     
-    [self moveFileOrFolder:fileNamePath fileNameTo:fileNameToPath success:^{
-        
-        if ([_metadataNet.selector isEqualToString:selectorRename] && [self.delegate respondsToSelector:@selector(renameSuccess:)])
-            [self.delegate renameSuccess:_metadataNet];
-        
-        if ([_metadataNet.selector isEqualToString:selectorMove] && [self.delegate respondsToSelector:@selector(moveSuccess:)])
-            [self.delegate moveSuccess:_metadataNet];
-        
-        [self complete];
-        
-    } failure:^(NSString *message, NSInteger errorCode) {
-        
-        if ([self.delegate respondsToSelector:@selector(renameMoveFileOrFolderFailure:message:errorCode:)])
-            [self.delegate renameMoveFileOrFolderFailure:_metadataNet message:message errorCode:errorCode];
-
-        [self complete];
-    }];
-}
-
-- (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure
-{
     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 moveFileOrFolder:fileName toDestiny:fileNameTo onCommunication:communication withForbiddenCharactersSupported:YES successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
 
-        success();
+        success(account);
         
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
@@ -1131,7 +1112,7 @@
         
         NSString *message = [CCError manageErrorOC:response.statusCode error:error];
         
-        failure(message, error.code);
+        failure(account, message, error.code);
         
     } errorBeforeRequest:^(NSError *error) {
         
@@ -1147,7 +1128,7 @@
             message = NSLocalizedString(@"_unknow_response_server_", nil);
         }
         
-        failure(message, error.code);
+        failure(account, message, error.code);
     }];
 }
 

+ 5 - 6
iOSClient/Trash/NCTrash.swift

@@ -482,18 +482,17 @@ 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 fileName = appDelegate.activeUrl + tableTrash.filePath + tableTrash.fileName
         let fileNameTo = appDelegate.activeUrl + k_dav + "/trashbin/" + appDelegate.activeUserID + "/restore/" + tableTrash.fileName
         
-        ocNetworking?.moveFileOrFolder(fileName, fileNameTo: fileNameTo, success: {
-            
-            NCManageDatabase.sharedInstance.deleteTrash(fileID: fileID, account: self.appDelegate.activeAccount)
+        let ocNetworking = OCnetworking.init(delegate: self, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
+        ocNetworking?.moveFileOrFolder(fileName, fileNameTo: fileNameTo, account: appDelegate.activeAccount, success: { (account) in
+
+            NCManageDatabase.sharedInstance.deleteTrash(fileID: fileID, account: account!)
             
             self.loadDatasource()
             
-        }, failure: { (message, errorCode) in
+        }, failure: { (account, message, errorCode) in
             
             self.appDelegate.messageNotification("_error_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
         })