浏览代码

create API for Mark and Delete Encryption Folder

Marino Faggiana 7 年之前
父节点
当前提交
9fc449312a
共有 3 个文件被更改,包括 78 次插入14 次删除
  1. 40 13
      iOSClient/Main/CCMain.m
  2. 3 0
      iOSClient/Networking/OCNetworking.h
  3. 35 1
      iOSClient/Networking/OCNetworking.m

+ 40 - 13
iOSClient/Main/CCMain.m

@@ -2593,20 +2593,49 @@
 
 - (void)markEndToEndFolderEncryptedFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
     
+    if (errorCode != kOCErrorServerUnauthorized)
+        [app messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
 }
 
-- (void)markFolderAsEndToEndEncryption:(NSString *)fileID serverUrl:(NSString *)serverUrl
+- (void)markEndToEndFolderEncrypted
 {
     CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
 
     metadataNet.action = actionMarkEndToEndFolderEncrypted;
-    metadataNet.fileID = fileID;
-    metadataNet.serverUrl = serverUrl;
+    metadataNet.fileID = _metadata.fileID;
     
     [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];    
 }
 
+- (void)deleteEndToEndFolderEncryptedSuccess:(CCMetadataNet *)metadataNet
+{
+    
+}
+
+- (void)deleteEndToEndFolderEncryptedFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+{
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+    
+    if (errorCode != kOCErrorServerUnauthorized)
+        [app messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+}
+
+- (void)deleteEndToEndFolderEncrypted
+{
+    CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
+    
+    metadataNet.action = actionDeleteEndToEndFolderEncrypted;
+    metadataNet.fileID = _metadata.fileID;
+    
+    [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Encrypted/Decrypted File =====
 #pragma --------------------------------------------------------------------------------------------
@@ -4323,33 +4352,31 @@
                                     }];
         }
         
-        if (!([_metadata.fileName isEqualToString:autoUploadFileName] == YES && [serverUrl isEqualToString:autoUploadDirectory] == YES)) {
+        if (!([_metadata.fileName isEqualToString:autoUploadFileName] == YES && [serverUrl isEqualToString:autoUploadDirectory] == YES) && !lockDirectory && [CCUtility isEndToEndEnabled:app.activeAccount]) {
             
-            [actionSheet addButtonWithTitle:titoloLock
-                                      image:[UIImage imageNamed:@"actionSheetLock"]
+            [actionSheet addButtonWithTitle:titoloCriptaDecripta
+                                      image:[UIImage imageNamed:@"actionSheetCrypto"]
                             backgroundColor:[UIColor whiteColor]
                                      height: 50.0
                                        type:AHKActionSheetButtonTypeEncrypted
                                     handler:^(AHKActionSheet *as) {
                                         
-                                        [self performSelector:@selector(comandoLockPassword) withObject:nil];
+                                        [self performSelector:@selector(deleteEndToEndFolderEncrypted) withObject:nil];
                                     }];
         }
         
-        /*
-        if (!([_metadata.fileName isEqualToString:autoUploadFileName] == YES && [serverUrl isEqualToString:autoUploadDirectory] == YES) && !lockDirectory && app.isCryptoCloudMode) {
+        if (!([_metadata.fileName isEqualToString:autoUploadFileName] == YES && [serverUrl isEqualToString:autoUploadDirectory] == YES)) {
             
-            [actionSheet addButtonWithTitle:titoloCriptaDecripta
-                                      image:[UIImage imageNamed:@"actionSheetCrypto"]
+            [actionSheet addButtonWithTitle:titoloLock
+                                      image:[UIImage imageNamed:@"actionSheetLock"]
                             backgroundColor:[UIColor whiteColor]
                                      height: 50.0
                                        type:AHKActionSheetButtonTypeEncrypted
                                     handler:^(AHKActionSheet *as) {
                                         
-                                        [self performSelector:@selector(encyptedDecryptedFolder) withObject:nil];
+                                        [self performSelector:@selector(comandoLockPassword) withObject:nil];
                                     }];
         }
-        */
         
         [actionSheet show];
     }

+ 3 - 0
iOSClient/Networking/OCNetworking.h

@@ -145,6 +145,9 @@
 - (void)markEndToEndFolderEncryptedSuccess:(CCMetadataNet *)metadataNet;
 - (void)markEndToEndFolderEncryptedFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
+- (void)deleteEndToEndFolderEncryptedSuccess:(CCMetadataNet *)metadataNet;
+- (void)deleteEndToEndFolderEncryptedFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+
 @end
 
 @interface OCURLSessionManager : AFURLSessionManager

+ 35 - 1
iOSClient/Networking/OCNetworking.m

@@ -1924,7 +1924,7 @@
     [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
     [communication setUserAgent:[CCUtility getUserAgent]];
     
-    [communication markEndToEndFolderEncrypted:_metadataNet.serverUrl fileID:_metadataNet.fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+    [communication markEndToEndFolderEncrypted:[_activeUrl stringByAppendingString:@"/"] fileID:_metadataNet.fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
         
         // 200 ok: body contain the public key
         
@@ -1951,6 +1951,40 @@
     }];
 }
 
+- (void)deleteEndToEndFolderEncrypted
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication deleteEndToEndFolderEncrypted:[_activeUrl stringByAppendingString:@"/"] fileID:_metadataNet.fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+        
+        // 200 ok: body contain the public key
+        
+        if ([self.delegate respondsToSelector:@selector(deleteEndToEndFolderEncryptedSuccess:)])
+            [self.delegate deleteEndToEndFolderEncryptedSuccess:_metadataNet];
+        
+        [self complete];
+        
+    } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+        
+        NSInteger errorCode = response.statusCode;
+        if (errorCode == 0)
+            errorCode = error.code;
+        
+        // Error
+        if ([self.delegate respondsToSelector:@selector(deleteEndToEndFolderEncryptedFailure:message:errorCode:)])
+            [self.delegate deleteEndToEndFolderEncryptedFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
+        
+        // Request trusted certificated
+        if ([error code] == NSURLErrorServerCertificateUntrusted)
+            [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
+        
+        [self complete];
+    }];
+}
+
 @end
 
 #pragma --------------------------------------------------------------------------------------------