Brion VIBBER has submitted this change and it was merged. Change subject: User is automatically logged in after account creation. ......................................................................
User is automatically logged in after account creation. Change-Id: Idd68d7af2457f80b85ac50fc9fa1afc9405e5425 --- M Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m M Wikipedia-iOS/View Controllers/Login/LoginViewController.h M Wikipedia-iOS/View Controllers/Login/LoginViewController.m M Wikipedia-iOS/View Controllers/TopNav/NavController.m 4 files changed, 95 insertions(+), 53 deletions(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved diff --git a/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m b/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m index f77ac24..e8f99b8 100644 --- a/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m +++ b/Wikipedia-iOS/View Controllers/AccountCreation/AccountCreationViewController.m @@ -9,6 +9,9 @@ #import "CaptchaResetOp.h" #import "UIScrollView+ScrollSubviewToLocation.h" #import "UIButton+ColorMask.h" +#import "LoginViewController.h" +#import "UINavigationController+SearchNavStack.h" +#import "MainMenuTableViewController.h" #define NAV ((NavController *)self.navigationController) @@ -248,6 +251,24 @@ } } +-(void)login +{ + LoginViewController *loginVC = [self.navigationController searchNavStackForViewControllerOfClass:[LoginViewController class]]; + + [self showAlert:@"Logging in..."]; + + [loginVC loginWithUserName:self.usernameField.text password:self.passwordField.text onSuccess:^{ + + MainMenuTableViewController *menuVC = [self.navigationController searchNavStackForViewControllerOfClass:[MainMenuTableViewController class]]; + [self.navigationController popToViewController:menuVC animated:YES]; + + } onFail:^(){ + + [self performSelector:@selector(hide) withObject:nil afterDelay:0.5f]; + + }]; +} + -(void)save { static BOOL isAleadySaving = NO; @@ -281,7 +302,7 @@ dispatch_async(dispatch_get_main_queue(), ^(){ [self showAlert:result]; [self showAlert:@""]; - [self performSelector:@selector(hide) withObject:nil afterDelay:1.0f]; + [self performSelector:@selector(login) withObject:nil afterDelay:0.6f]; isAleadySaving = NO; }); diff --git a/Wikipedia-iOS/View Controllers/Login/LoginViewController.h b/Wikipedia-iOS/View Controllers/Login/LoginViewController.h index 7f390a3..83c124d 100644 --- a/Wikipedia-iOS/View Controllers/Login/LoginViewController.h +++ b/Wikipedia-iOS/View Controllers/Login/LoginViewController.h @@ -12,4 +12,9 @@ - (IBAction)createAccountButtonPushed:(id)sender; +- (void)loginWithUserName: (NSString *)userName + password: (NSString *)password + onSuccess: (void (^)(void))successBlock + onFail: (void (^)(void))failBlock; + @end diff --git a/Wikipedia-iOS/View Controllers/Login/LoginViewController.m b/Wikipedia-iOS/View Controllers/Login/LoginViewController.m index 08295b1..5f35a4b 100644 --- a/Wikipedia-iOS/View Controllers/Login/LoginViewController.m +++ b/Wikipedia-iOS/View Controllers/Login/LoginViewController.m @@ -122,7 +122,11 @@ -(void)save { - [self login]; + [self loginWithUserName: self.usernameField.text + password: self.passwordField.text + onSuccess: ^{ + [self performSelector:@selector(hide) withObject:nil afterDelay:1.25f]; + } onFail: nil]; } -(void)hide @@ -147,9 +151,15 @@ // Dispose of any resources that can be recreated. } --(void)login +-(void)loginWithUserName: (NSString *)userName + password: (NSString *)password + onSuccess: (void (^)(void))successBlock + onFail: (void (^)(void))failBlock { [self showAlert:@""]; + + if (!successBlock) successBlock = ^(){}; + if (!failBlock) failBlock = ^(){}; /* void (^printCookies)() = ^void(){ @@ -163,57 +173,61 @@ //[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; - NSString *userName = self.usernameField.text; - NSString *password = self.passwordField.text; + LoginOp *loginOp = + [[LoginOp alloc] initWithUsername: userName + password: password + domain: [SessionSingleton sharedInstance].domain + completionBlock: ^(NSString *loginResult){ + + // Login credentials should only be placed in the keychain if they've been authenticated. + [SessionSingleton sharedInstance].keychainCredentials.userName = userName; + [SessionSingleton sharedInstance].keychainCredentials.password = password; + + //NSString *result = loginResult[@"login"][@"result"]; + [self showAlert:loginResult]; + + [[NSOperationQueue mainQueue] addOperationWithBlock:successBlock]; + + [self cloneSessionCookies]; + //printCookies(); + + } cancelledBlock: ^(NSError *error){ + + [self showAlert:error.localizedDescription]; + + [[NSOperationQueue mainQueue] addOperationWithBlock:failBlock]; + + + } errorBlock: ^(NSError *error){ + + [self showAlert:error.localizedDescription]; + + [[NSOperationQueue mainQueue] addOperationWithBlock:failBlock]; + + }]; - LoginOp *loginOp = [[LoginOp alloc] initWithUsername: userName - password: password - domain: [SessionSingleton sharedInstance].domain - completionBlock: ^(NSString *loginResult){ - - // Login credentials should only be placed in the keychain if they've been authenticated. - [SessionSingleton sharedInstance].keychainCredentials.userName = userName; - [SessionSingleton sharedInstance].keychainCredentials.password = password; - - //NSString *result = loginResult[@"login"][@"result"]; - [self showAlert:loginResult]; - - [[NSOperationQueue mainQueue] addOperationWithBlock: ^{ - - [self performSelector:@selector(hide) withObject:nil afterDelay:1.25f]; - - }]; - - [self cloneSessionCookies]; - //printCookies(); - - } cancelledBlock: ^(NSError *error){ - - [self showAlert:error.localizedDescription]; - - } errorBlock: ^(NSError *error){ - - [self showAlert:error.localizedDescription]; - - }]; - - LoginTokenOp *loginTokenOp = [[LoginTokenOp alloc] initWithUsername: userName - password: password - domain: [SessionSingleton sharedInstance].domain - completionBlock: ^(NSString *tokenRetrieved){ - - NSLog(@"loginTokenOp token = %@", tokenRetrieved); - loginOp.token = tokenRetrieved; - - } cancelledBlock: ^(NSError *error){ - - [self showAlert:@""]; - - } errorBlock: ^(NSError *error){ - - [self showAlert:error.localizedDescription]; - - }]; + LoginTokenOp *loginTokenOp = + [[LoginTokenOp alloc] initWithUsername: userName + password: password + domain: [SessionSingleton sharedInstance].domain + completionBlock: ^(NSString *tokenRetrieved){ + + NSLog(@"loginTokenOp token = %@", tokenRetrieved); + loginOp.token = tokenRetrieved; + + } cancelledBlock: ^(NSError *error){ + + [self showAlert:@""]; + + [[NSOperationQueue mainQueue] addOperationWithBlock:failBlock]; + + } errorBlock: ^(NSError *error){ + + [self showAlert:error.localizedDescription]; + + [[NSOperationQueue mainQueue] addOperationWithBlock:failBlock]; + + }]; loginTokenOp.delegate = self; loginOp.delegate = self; diff --git a/Wikipedia-iOS/View Controllers/TopNav/NavController.m b/Wikipedia-iOS/View Controllers/TopNav/NavController.m index 8f3845a..b7194f9 100644 --- a/Wikipedia-iOS/View Controllers/TopNav/NavController.m +++ b/Wikipedia-iOS/View Controllers/TopNav/NavController.m @@ -491,6 +491,8 @@ { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. + + //self.navBarStyle = (self.navBarStyle == NAVBAR_STYLE_DAY) ? NAVBAR_STYLE_NIGHT : NAVBAR_STYLE_DAY; } #pragma mark NavBarStyle night/day mode management -- To view, visit https://gerrit.wikimedia.org/r/116894 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Idd68d7af2457f80b85ac50fc9fa1afc9405e5425 Gerrit-PatchSet: 1 Gerrit-Project: apps/ios/wikipedia Gerrit-Branch: master Gerrit-Owner: Mhurd <mh...@wikimedia.org> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits