소스 검색

Automatic mark E2E Encrypted folder if parent is Encrypted

Marino Faggiana 7 년 전
부모
커밋
ebf07766d5
1개의 변경된 파일32개의 추가작업 그리고 14개의 파일을 삭제
  1. 32 14
      iOSClient/Main/CCMain.m

+ 32 - 14
iOSClient/Main/CCMain.m

@@ -2377,26 +2377,44 @@
 
 - (void)createFolderSuccess:(CCMetadataNet *)metadataNet
 {
-    NSString *newDirectory = [NSString stringWithFormat:@"%@/%@", metadataNet.serverUrl, metadataNet.fileName];    
-    (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:newDirectory permissions:nil encrypted:false];
+    NSString *newDirectory = [NSString stringWithFormat:@"%@/%@", metadataNet.serverUrl, metadataNet.fileName];
     
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileName = %@ AND directoryID = %@", metadataNet.fileName, metadataNet.directoryID]];
+    if (_metadataFolder.e2eEncrypted) {
         
-    if (metadata) {
+        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+            NSString *token;
+            NSError *error = [[NCNetworkingSync sharedManager] markEndToEndFolderEncrypted:appDelegate.activeUser userID:appDelegate.activeUserID password:appDelegate.activePassword url:appDelegate.activeUrl fileID:metadataNet.fileID serverUrl:newDirectory token:&token];
+            dispatch_async(dispatch_get_main_queue(), ^{
+                if (error) {
+                    [appDelegate messageNotification:@"_error_e2ee_" description:error.localizedDescription visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:error.code];
+                } else {
+                    [self readFolder:self.serverUrl];
+                }
+            });
+        });
         
-        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileName = %@ AND directoryID = %@", metadataNet.fileName, metadataNet.directoryID] clearDateReadDirectoryID:nil];
-
-        metadata.fileID = metadataNet.fileID;
-        metadata.date = metadataNet.date;
-        metadata.permissions = @"RDNVCK";
-
-        (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
+    } else {
         
-        [self reloadDatasource];
+        (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:newDirectory permissions:nil encrypted:false];
+        
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileName = %@ AND directoryID = %@", metadataNet.fileName, metadataNet.directoryID]];
+        
+        if (metadata) {
             
-    } else {
+            [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileName = %@ AND directoryID = %@", metadataNet.fileName, metadataNet.directoryID] clearDateReadDirectoryID:nil];
             
-        [self readFileReloadFolder];
+            metadata.fileID = metadataNet.fileID;
+            metadata.date = metadataNet.date;
+            metadata.permissions = @"RDNVCK";
+            
+            (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
+            
+            [self reloadDatasource];
+            
+        } else {
+            
+            [self readFileReloadFolder];
+        }
     }
 }