Browse Source

Add option forced remove lock E2E

Marino Faggiana 7 years ago
parent
commit
b7ed49cc3a
2 changed files with 41 additions and 3 deletions
  1. 40 3
      iOSClient/Main/CCMain.m
  2. 1 0
      iOSClient/Supporting Files/en.lproj/Localizable.strings

+ 40 - 3
iOSClient/Main/CCMain.m

@@ -1785,12 +1785,10 @@
     // E2E Is encrypted folder get metadata
     if (_metadataFolder.e2eEncrypted) {
         
+        // Read Metadata
         if ([CCUtility isEndToEndEnabled:appDelegate.activeAccount]) {
-            
             [appDelegate.endToEndInterface getEndToEndMetadata:_metadataFolder.fileName fileID:_metadataFolder.fileID serverUrl:self.serverUrl];
-            
         } else {
-            
             [appDelegate messageNotification:@"_info_" description:@"_e2e_goto_settings_for_enable_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeInfo errorCode:0];
         }
     }
@@ -2886,6 +2884,25 @@
     [[CCActions sharedInstance] settingFavorite:metadata favorite:NO delegate:self];
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== E2E Encryption =====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)unlockEndToEndFolderEncryptedSuccess:(CCMetadataNet *)metadataNet
+{
+    [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithFileID:metadataNet.fileID token:@""];
+    
+    [appDelegate messageNotification:@"_success_" description:@"_e2e_remove_folder_lock_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeSuccess errorCode:0];
+}
+
+- (void)unlockEndToEndFolderEncryptedFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+{
+    if (errorCode == 404)
+        [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithFileID:metadataNet.fileID token:@""];
+    
+    [appDelegate messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Open in... =====
 #pragma --------------------------------------------------------------------------------------------
@@ -4093,6 +4110,26 @@
                                     }];
         }
         
+        if ([CCUtility isEndToEndEnabled:appDelegate.activeAccount] && directory.e2eTokenLock.length > 0) {
+            
+            [actionSheet addButtonWithTitle:NSLocalizedString(@"_e2e_remove_folder_lock_", nil)
+                                      image:[UIImage imageNamed:@"encrypted_empty"]
+                            backgroundColor:[UIColor whiteColor]
+                                     height:50.0
+                                       type:AHKActionSheetButtonTypeEncrypted
+                                    handler:^(AHKActionSheet *as) {
+                                        
+                                        CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:appDelegate.activeAccount];
+                                        
+                                        metadataNet.action = actionUnlockEndToEndFolderEncrypted;
+                                        metadataNet.fileID = _metadata.fileID;
+                                        metadataNet.serverUrl = directory.serverUrl;
+                                        metadataNet.token = directory.e2eTokenLock;
+                                        
+                                        [appDelegate addNetworkingOperationQueue:appDelegate.netQueue delegate:self metadataNet:metadataNet];
+                                    }];
+        }
+        
         [actionSheet show];
     }
     

+ 1 - 0
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -509,4 +509,5 @@
 "_e2e_remove_folder_encrypted_"     = "Remove as encrypted";
 "_e2e_goto_settings_for_enable_"    = "You are in a encrypted directory, go to on \"Settings\" and enable the End-To-End Encryption";
 "_e2e_delete_folder_not_permitted_" = "Deletion of the directory marked as 'encrypted' is not allowed";
+"_e2e_remove_folder_lock_"          = "Forced remove folder lock";