Răsfoiți Sursa

add unlockEndToEndFolderEncrypted

Marino Faggiana 7 ani în urmă
părinte
comite
4187c0c447

+ 1 - 0
iOSClient/CCGlobal.h

@@ -210,6 +210,7 @@ extern NSString *const dav;
 #define actionGetEndToEndServerPublicKey                @"getEndToEndServerPublicKey"
 #define actionGetEndToEndMetadata                       @"getEndToEndMetadata"
 #define actionDeleteEndToEndMetadata                    @"deleteEndToEndMetadata"
+#define actionUnlockEndToEndFolderEncrypted             @"unlockEndToEndFolderEncrypted"
 
 // Metadata : FileType
 #define k_metadataTypeFile_audio                        @"audio"

+ 0 - 1
iOSClient/Networking/CCNetworking.m

@@ -1633,7 +1633,6 @@
 {
     tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", _activeAccount, serverUrl]];
     
-    //NSString *e2eTokenLock = directory.e2eTokenLock;
     NSString *e2eTokenLock;
     NSError *error;
     

+ 0 - 1
iOSClient/Networking/NCNetworkingSync.m

@@ -323,7 +323,6 @@
     return returnError;
 }
 
-
 - (NSError *)lockEndToEndFolderEncrypted:(NSString *)user userID:(NSString *)userID password:(NSString *)password url:(NSString *)url fileID:(NSString *)fileID token:(NSString  **)token
 {
     OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;

+ 3 - 0
iOSClient/Networking/OCNetworking.h

@@ -147,6 +147,9 @@
 - (void)deleteEndToEndMetadataSuccess:(CCMetadataNet *)metadataNet;
 - (void)deleteEndToEndMetadataFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
+- (void)unlockEndToEndFolderEncryptedSuccess:(CCMetadataNet *)metadataNet;
+- (void)unlockEndToEndFolderEncryptedFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+
 @end
 
 @interface OCURLSessionManager : AFURLSessionManager

+ 34 - 0
iOSClient/Networking/OCNetworking.m

@@ -1939,6 +1939,40 @@
     }];
 }
 
+- (void)unlockEndToEndFolderEncrypted
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication unlockEndToEndFolderEncrypted:[_activeUrl stringByAppendingString:@"/"] fileID:_metadataNet.fileID token:_metadataNet.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+        
+        // 200 ok: file unlocked successful
+        
+        if ([self.delegate respondsToSelector:@selector(unlockEndToEndFolderEncryptedSuccess:)])
+            [self.delegate unlockEndToEndFolderEncryptedSuccess:_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(unlockEndToEndFolderEncryptedFailure:message:errorCode:)])
+            [self.delegate unlockEndToEndFolderEncryptedFailure:_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 --------------------------------------------------------------------------------------------