From 9266ae36898295229e5e386fa76a760d4f2f9a29 Mon Sep 17 00:00:00 2001 From: Giuseppe Nucifora Date: Mon, 26 Mar 2018 23:43:26 +0200 Subject: [PATCH] - ripristinate - (void) setOauthUserName:(NSString * _Nonnull)oauthUserName oauthPassword:(NSString* _Nonnull) oauthPassword forEnv:(NSString * _Nonnull) environment --- Example/PNObject/PNObjAppDelegate.m | 8 ++------ PNObject/Classes/PNObjectConfig.h | 2 ++ PNObject/Classes/PNObjectConfig.m | 16 ++++++++++++++++ README.md | 6 +++--- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Example/PNObject/PNObjAppDelegate.m b/Example/PNObject/PNObjAppDelegate.m index 58cabae..7724197 100644 --- a/Example/PNObject/PNObjAppDelegate.m +++ b/Example/PNObject/PNObjAppDelegate.m @@ -33,21 +33,17 @@ _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. - /** [PNObjectConfig initSharedInstanceForEnvironments:@{EnvironmentDevelopment : @{BaseUrl:@"http://pnobject.local/",EndpointPath:@"api/v1/"}, EnvironmentStage : @{BaseUrl:@"https://pnobject.stage.it/",EndpointPath:@"api/v1/"}, EnvironmentProduction : @{BaseUrl:@"http://pnobject.prod.it/",EndpointPath:@"api/v1/"}, } andUserSubclass:[PNUser class]]; - [[PNObjectConfig sharedInstance] setClientID:@"******" clientSecret:@"******" oAuthEndpointAction:@"api/v1/" oauthMode:OAuthModeClientCredential forEnv:EnvironmentStage]; - [[PNObjectConfig sharedInstance] setClientID:@"******" clientSecret:@"******" oAuthEndpointAction:@"api/v1/" oauthMode:OAuthModePassword forEnv:EnvironmentStage]; - */ - - /** Can user special char %@ to autoset EndpointPath to Oauth endpointPath */ [[PNObjectConfig sharedInstance] setClientID:@"******" clientSecret:@"******" oAuthEndpointAction:@"%@oauth-token" oauthMode:OAuthModeClientCredential forEnv:EnvironmentStage]; [[PNObjectConfig sharedInstance] setClientID:@"******" clientSecret:@"******" oAuthEndpointAction:@"%@oauth-token" oauthMode:OAuthModePassword forEnv:EnvironmentStage]; + [[PNObjectConfig sharedInstance] setOauthUserName:@"admin" oauthPassword:@"admin" forEnv:EnvironmentStage]; + [[PNObjectConfig sharedInstance] setEnvironment:EnvironmentStage]; NSLogDebug(@"%@",[[PNObjectConfig sharedInstance] baseUrl]); diff --git a/PNObject/Classes/PNObjectConfig.h b/PNObject/Classes/PNObjectConfig.h index 235baa6..3ba43ac 100644 --- a/PNObject/Classes/PNObjectConfig.h +++ b/PNObject/Classes/PNObjectConfig.h @@ -134,6 +134,8 @@ typedef NS_ENUM(NSInteger, OAuthMode) { */ - (void) setClientID:(NSString * _Nonnull) clientID clientSecret:(NSString* _Nonnull) clientSecret oAuthEndpointAction:(NSString* _Nonnull) oAuthEndpointAction oauthMode:(OAuthMode) oauthMode forEnv:(NSString* _Nonnull) environment; +- (void) setOauthUserName:(NSString * _Nonnull)oauthUserName oauthPassword:(NSString* _Nonnull) oauthPassword forEnv:(NSString * _Nonnull) environment; + /** * <#Description#> * diff --git a/PNObject/Classes/PNObjectConfig.m b/PNObject/Classes/PNObjectConfig.m index b90c3cb..039930c 100644 --- a/PNObject/Classes/PNObjectConfig.m +++ b/PNObject/Classes/PNObjectConfig.m @@ -790,6 +790,22 @@ static bool isFirstAccess = YES; } } +- (void) setOauthUserName:(NSString * _Nonnull)oauthUserName oauthPassword:(NSString* _Nonnull) oauthPassword forEnv:(NSString *) environment { + + if ([_configuration objectForKey:environment]) { + + NSMutableDictionary *currentConfigurationDict = [[NSMutableDictionary alloc] initWithDictionary:[_configuration objectForKey:environment]]; + [currentConfigurationDict setObject:oauthUserName forKey:Client_Username]; + [currentConfigurationDict setObject:oauthPassword forKey:Client_Password]; + + [_configuration setObject:currentConfigurationDict forKey:environment]; + + if (_currentEnv == environment) { + [self setEnvironment:environment]; + } + } +} + - (BOOL) setCredentialTokenForOauthMode:(OAuthMode) oauthMode { switch (oauthMode) { case OAuthModeClientCredential: diff --git a/README.md b/README.md index c06b660..a8ace37 100644 --- a/README.md +++ b/README.md @@ -39,10 +39,10 @@ Configure PNObject endpoint client ID, client secret and OAuthModePassword with EnvironmentProduction : @{BaseUrl:@"http://pnobject.prod.it/",EndpointPath:@"api/v1/"}, } userSubclass:[PNUser class]]; - [[PNObjectConfig sharedInstance] setClientID:@"xxxxxxxxx" clientSecret:@"xxxxxxxxxxxx" forEnv:EnvironmentStage]; - [[PNObjectConfig sharedInstance] setClientID:@"xxxxxxxxx" clientSecret:@"xxxxxxxxxxxx" forEnv:EnvironmentProduction]; - + /** Can user special char %@ to autoset EndpointPath to Oauth endpointPath */ + [[PNObjectConfig sharedInstance] setClientID:@"******" clientSecret:@"******" oAuthEndpointAction:@"%@oauth-token" oauthMode:OAuthModeClientCredential forEnv:EnvironmentStage]; + [[PNObjectConfig sharedInstance] setClientID:@"******" clientSecret:@"******" oAuthEndpointAction:@"%@oauth-token" oauthMode:OAuthModePassword forEnv:EnvironmentStage]; [[PNObjectConfig sharedInstance] setOauthUserName:@"admin" oauthPassword:@"admin" forEnv:EnvironmentStage];