Просмотр исходного кода

redesign Open Login view for kOCErrorServerUnauthorized

Marino Faggiana 7 лет назад
Родитель
Сommit
dd5892f671
4 измененных файлов с 67 добавлено и 189 удалено
  1. 20 19
      iOSClient/AppDelegate.m
  2. 5 2
      iOSClient/Login/CCLogin.m
  3. 42 32
      iOSClient/Main/CCMain.m
  4. 0 136
      iOSClient/Networking/OCNetworking.m

+ 20 - 19
iOSClient/AppDelegate.m

@@ -347,36 +347,37 @@
 
 - (void)openLoginView:(id)delegate loginType:(enumLoginType)loginType
 {
-    if ([NCBrandOptions sharedInstance].use_login_web) {
+    @synchronized (self) {
+
+        if ([NCBrandOptions sharedInstance].use_login_web) {
         
-        if (!_activeLoginWeb.isViewLoaded || !_activeLoginWeb.view.window) {
+            if (!_activeLoginWeb.view.window) {
         
-            _activeLoginWeb = [CCLoginWeb new];
-            _activeLoginWeb.delegate = delegate;
-            _activeLoginWeb.loginType = loginType;
+                _activeLoginWeb = [CCLoginWeb new];
+                _activeLoginWeb.delegate = delegate;
+                _activeLoginWeb.loginType = loginType;
         
-            dispatch_async(dispatch_get_main_queue(), ^ {
-                [_activeLoginWeb presentModalWithDefaultTheme:delegate];
-            });
-        }
+                dispatch_async(dispatch_get_main_queue(), ^ {
+                    [_activeLoginWeb presentModalWithDefaultTheme:delegate];
+                });
+            }
         
-    } else {
+        } else {
         
-        if (!_activeLogin.isViewLoaded || !_activeLogin.view.window) {
+            if (!_activeLogin.view.window) {
 
-            _activeLogin = [[UIStoryboard storyboardWithName:@"CCLogin" bundle:nil] instantiateViewControllerWithIdentifier:@"CCLoginNextcloud"];
-            _activeLogin.delegate = delegate;
-            _activeLogin.loginType = loginType;
+                _activeLogin = [[UIStoryboard storyboardWithName:@"CCLogin" bundle:nil] instantiateViewControllerWithIdentifier:@"CCLoginNextcloud"];
+                _activeLogin.delegate = delegate;
+                _activeLogin.loginType = loginType;
         
-            dispatch_async(dispatch_get_main_queue(), ^ {
-                [self.window makeKeyAndVisible];
-                [self.window.rootViewController presentViewController:_activeLogin animated:YES completion:nil];
-            });
+                dispatch_async(dispatch_get_main_queue(), ^ {
+                    [delegate presentViewController:_activeLogin animated:YES completion:nil];
+                });
+            }
         }
     }
 }
 
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Setting Active Account for all APP =====
 #pragma --------------------------------------------------------------------------------------------

+ 5 - 2
iOSClient/Login/CCLogin.m

@@ -291,7 +291,9 @@
             [app settingActiveAccount:tbAccount.account activeUrl:tbAccount.url activeUser:tbAccount.user activeUserID:tbAccount.userID activePassword:tbAccount.password];
 
             // Dismiss
-            [self.delegate loginSuccess:_loginType];
+            if ([self.delegate respondsToSelector:@selector(loginSuccess:)])
+                [self.delegate loginSuccess:_loginType];
+            
             [self dismissViewControllerAnimated:YES completion:nil];
             
         } else {
@@ -375,7 +377,8 @@
         [app settingActiveAccount:account.account activeUrl:account.url activeUser:account.user activeUserID:account.userID activePassword:account.password];
     
         // Ok ! Dismiss
-        [self.delegate loginSuccess:_loginType];
+        if ([self.delegate respondsToSelector:@selector(loginSuccess:)])        
+            [self.delegate loginSuccess:_loginType];
         
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
             [self dismissViewControllerAnimated:YES completion:nil];

+ 42 - 32
iOSClient/Main/CCMain.m

@@ -937,36 +937,11 @@
 #pragma mark ===== Change Password =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void) loginSuccess:(NSInteger)loginType
+- (void)loginSuccess:(NSInteger)loginType
 {
     [self readFolder:_serverUrl];
 }
 
-/*
-- (void)changePasswordAccount
-{
-    // Brand
-    if ([NCBrandOptions sharedInstance].use_login_web) {
-    
-        _loginWeb = [CCLoginWeb new];
-        _loginWeb.delegate = self;
-        _loginWeb.loginType = loginModifyPasswordUser;
-    
-        dispatch_async(dispatch_get_main_queue(), ^ {
-            [_loginWeb presentModalWithDefaultTheme:self];
-        });
-        
-    } else {
-        
-        _loginVC = [[UIStoryboard storyboardWithName:@"CCLogin" bundle:nil] instantiateViewControllerWithIdentifier:@"CCLoginNextcloud"];
-        _loginVC.delegate = self;
-        _loginVC.loginType = loginModifyPasswordUser;
-    
-        [self presentViewController:_loginVC animated:YES completion:nil];
-    }
-}
-*/
-
 #pragma mark -
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Peek & Pop  =====
@@ -1153,6 +1128,10 @@
 
 - (void)getCapabilitiesOfServerFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+
     NSString *error = [NSString stringWithFormat:@"Get Capabilities failure error %lu, %@", (long)errorCode, message];
     NSLog(@"[LOG] %@", error);
     
@@ -1267,6 +1246,11 @@
 #pragma mark ==== Download Thumbnail Delegate ====
 #pragma --------------------------------------------------------------------------------------------
 
+- (void)downloadThumbnailFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+{
+    NSLog(@"[LOG] Download Thumbnail Failure error %lu, %@", (long)errorCode, message);
+}
+
 - (void)downloadThumbnailSuccess:(CCMetadataNet *)metadataNet
 {
     NSIndexPath *indexPath = [_sectionDataSource.fileIDIndexPath objectForKey:metadataNet.fileID];
@@ -1676,10 +1660,9 @@
 
 - (void)readFileFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    // Read Folder
-    if ([metadataNet.selector isEqualToString:selectorReadFileReloadFolder]) {
-        //[self readFolderWithForced:NO serverUrl:metadataNet.serverUrl];
-    }
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
     
     // UploadFile
     if ([metadataNet.selector isEqualToString:selectorReadFileUploadFile]) {
@@ -1756,8 +1739,9 @@
 
 - (void)readFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    // verify active user
-    tableAccount *record = [[NCManageDatabase sharedInstance] getAccountActive];
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
     
     _loadingFolder = NO;
     [self tableViewReloadData];
@@ -1766,6 +1750,8 @@
         
     [_ImageTitleHomeCryptoCloud setUserInteractionEnabled:YES];
     
+    // verify active user
+    tableAccount *record = [[NCManageDatabase sharedInstance] getAccountActive];
     if (message && [record.account isEqualToString:metadataNet.account])
         [app messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
     
@@ -1973,6 +1959,10 @@
 
 - (void)searchFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+    
     if (message && errorCode != kOCErrorServerUnauthorized)
         [app messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
     
@@ -2011,6 +2001,10 @@
 
 - (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+
     NSLog(@"[LOG] Delete File failure error %lu, %@", (long)errorCode, message);
 
     [self deleteFileOrFolderSuccess:metadataNet];
@@ -2277,6 +2271,10 @@
 
 - (void)createFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+
     if (message && errorCode != kOCErrorServerUnauthorized)
         [app messageNotification:@"_create_folder_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
     
@@ -2647,6 +2645,10 @@
 {
     [_hud hideHud];
 
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+
     if (errorCode != kOCErrorServerUnauthorized)
         [app messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
 
@@ -2738,6 +2740,10 @@
 {
     [_hud hideHud];
     
+    // 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];
 }
@@ -2849,6 +2855,10 @@
 
 - (void)settingFavoriteFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
+    // Unauthorized
+    if (errorCode == kOCErrorServerUnauthorized)
+        [app openLoginView:self loginType:loginModifyPasswordUser];
+
     NSLog(@"[LOG] Setting Favorite failure error %lu, %@", (long)errorCode, message);
 }
 

+ 0 - 136
iOSClient/Networking/OCNetworking.m

@@ -204,12 +204,6 @@
                 [self.delegate downloadThumbnailFailure:_metadataNet message:[CCError manageErrorOC:response.statusCode error:error] errorCode:errorCode];
         }
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-        
         [self complete];
     }];
 }
@@ -352,12 +346,6 @@
                 [self.delegate readFolderFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-        
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -474,12 +462,6 @@
             else
                 [self.delegate searchFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -523,12 +505,6 @@
             else
                 [self.delegate settingFavoriteFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -642,12 +618,6 @@
             else
                 [self.delegate listingFavoritesFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -700,12 +670,6 @@
         if ([self.delegate respondsToSelector:@selector(createFolderFailure:message:errorCode:)])
             [self.delegate createFolderFailure:_metadataNet message:message errorCode:errorCode];
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -815,12 +779,6 @@
                 [self.delegate deleteFileOrFolderFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -861,12 +819,6 @@
         
         if ([self.delegate respondsToSelector:@selector(renameMoveFileOrFolderFailure:message:errorCode:)])
             [self.delegate renameMoveFileOrFolderFailure:_metadataNet message:[CCError manageErrorOC:response.statusCode error:error] errorCode:errorCode];
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -979,12 +931,6 @@
             else
                 [self.delegate readFileFailure:_metadataNet message:[CCError manageErrorOC:response.statusCode error:error] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1077,10 +1023,6 @@
                 [self.delegate shareFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -1115,12 +1057,6 @@
             else
                 [self.delegate shareFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1157,12 +1093,6 @@
             else
                 [self.delegate shareFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1201,12 +1131,6 @@
             else
                 [self.delegate shareFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1249,12 +1173,6 @@
                 [self.delegate shareFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -1292,12 +1210,6 @@
                 [self.delegate getUserAndGroupFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -1337,12 +1249,6 @@
                 [self.delegate getSharePermissionsFileFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-        
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -1383,12 +1289,6 @@
             else
                 [self.delegate getActivityServerFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1430,12 +1330,6 @@
             else
                 [self.delegate getExternalSitesServerFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1518,12 +1412,6 @@
             else
                 [self.delegate getNotificationServerFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1566,12 +1454,6 @@
             else
                 [self.delegate setNotificationServerFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1651,12 +1533,6 @@
                 [self.delegate subscribingNextcloudServerFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
 
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
-
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
             [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
@@ -1700,12 +1576,6 @@
             else
                 [self.delegate getUserProfileFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -1785,12 +1655,6 @@
             else
                 [self.delegate getCapabilitiesOfServerFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
-        
-#ifndef EXTENSION
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [app openLoginView:self loginType:loginModifyPasswordUser];
-#endif
 
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)