Skip to content
This repository was archived by the owner on Feb 5, 2025. It is now read-only.

Commit 10eeeb5

Browse files
authored
Merge pull request #59 from wordpress-mobile/release/1.1.10
Merge Release/1.1.10 into Master
2 parents 6ba72cf + d59b72d commit 10eeeb5

File tree

6 files changed

+43
-21
lines changed

6 files changed

+43
-21
lines changed

Podfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ target 'WordPressAuthenticator' do
1717
##
1818
pod 'Gridicons', '~> 0.15'
1919
pod 'WordPressUI', '~> 1.0'
20-
pod 'WordPressKit', '~> 2.0-beta'
20+
pod 'WordPressKit', '~> 3.0.0-beta.1'
2121
pod 'WordPressShared', '~> 1.4'
2222

2323
## Third party libraries

Podfile.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ PODS:
4545
- Specta (1.0.7)
4646
- SVProgressHUD (2.2.5)
4747
- UIDeviceIdentifier (1.1.4)
48-
- WordPressKit (2.0.0-beta.1):
48+
- WordPressKit (3.0.0-beta.1):
4949
- Alamofire (~> 4.7.3)
5050
- CocoaLumberjack (= 3.4.2)
5151
- NSObject-SafeExpectations (= 0.0.3)
5252
- UIDeviceIdentifier (~> 1.1.4)
5353
- WordPressShared (~> 1.4)
5454
- wpxmlrpc (= 0.8.4)
55-
- WordPressShared (1.6.0):
55+
- WordPressShared (1.7.0):
5656
- CocoaLumberjack (~> 3.4)
5757
- FormatterKit/TimeIntervalFormatter (= 1.8.2)
5858
- WordPressUI (1.2.0)
@@ -72,7 +72,7 @@ DEPENDENCIES:
7272
- OHHTTPStubs/Swift (= 6.1.0)
7373
- Specta (= 1.0.7)
7474
- SVProgressHUD (= 2.2.5)
75-
- WordPressKit (~> 2.0-beta)
75+
- WordPressKit (~> 3.0.0-beta.1)
7676
- WordPressShared (~> 1.4)
7777
- WordPressUI (~> 1.0)
7878

@@ -116,11 +116,11 @@ SPEC CHECKSUMS:
116116
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
117117
SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
118118
UIDeviceIdentifier: 8f8a24b257a4d978c8d40ad1e7355b944ffbfa8c
119-
WordPressKit: 2b6f01a7459d358b8cf6d825348c6cf7174107b2
120-
WordPressShared: a2fc2db66c210a05d317ae9678b5823dd6a4d708
119+
WordPressKit: 843906cb26fb8a92dddefd9a324a821555bf2b94
120+
WordPressShared: cfbda56868419842dd7a106a4e807069a0c17aa9
121121
WordPressUI: 44fe43a9c5c504dfd534286e39e1ce6ebcd69ff5
122122
wpxmlrpc: 6ba55c773cfa27083ae4a2173e69b19f46da98e2
123123

124-
PODFILE CHECKSUM: 82ea8bb53494ef9ee71085384656b7fd8edc69b8
124+
PODFILE CHECKSUM: bba3fa5287f208435d83f079ef7069a51a5c090a
125125

126126
COCOAPODS: 1.5.3

WordPressAuthenticator.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "WordPressAuthenticator"
3-
s.version = "1.1.9"
3+
s.version = "1.1.10"
44
s.summary = "WordPressAuthenticator implements an easy and elegant way to authenticate your WordPress Apps."
55

66
s.description = <<-DESC
@@ -34,6 +34,6 @@ Pod::Spec.new do |s|
3434
s.dependency 'Gridicons', '~> 0.15'
3535
s.dependency 'GoogleSignInRepacked', '4.1.2'
3636
s.dependency 'WordPressUI', '~> 1.0'
37-
s.dependency 'WordPressKit', '~> 2.0-beta'
37+
s.dependency 'WordPressKit', '~> 3.0.0-beta.1'
3838
s.dependency 'WordPressShared', '~> 1.4'
3939
end

WordPressAuthenticator/Services/SignupService.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ class SignupService {
2121
failure: @escaping (_ error: Error) -> Void) {
2222

2323
let remote = WordPressComServiceRemote(wordPressComRestApi: anonymousAPI)
24-
let locale = WordPressComLanguageDatabase().deviceLanguage.slug
2524

2625
remote.createWPComAccount(withGoogle: token,
27-
andLocale: locale,
2826
andClientID: configuration.wpcomClientId,
2927
andClientSecret: configuration.wpcomSecret,
3028
success: { response in

WordPressAuthenticator/Services/WordPressComBlogService.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,22 @@ class WordPressComBlogService {
3333
failure(result)
3434
})
3535
}
36+
37+
func fetchUnauthenticatedSiteInfoForAddress(for address: String, success: @escaping (WordPressComSiteInfo) -> Void, failure: @escaping (Error) -> Void) {
38+
let remote = BlogServiceRemoteREST(wordPressComRestApi: anonymousAPI, siteID: 0)
39+
remote.fetchUnauthenticatedSiteInfo(forAddress: address, success: { response in
40+
guard let response = response else {
41+
failure(ServiceError.unknown)
42+
return
43+
}
44+
45+
let site = WordPressComSiteInfo(remote: response)
46+
success(site)
47+
}, failure: { error in
48+
let result = error ?? ServiceError.unknown
49+
failure(result)
50+
})
51+
}
3652
}
3753

3854

WordPressAuthenticator/Signin/LoginSiteAddressViewController.swift

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -181,21 +181,29 @@ class LoginSiteAddressViewController: LoginViewController, NUXKeyboardResponder
181181

182182

183183
@objc func fetchSiteInfo() {
184-
let baseSiteUrl = WordPressAuthenticator.baseSiteURL(string: loginFields.siteAddress) as NSString
184+
let baseSiteUrl = WordPressAuthenticator.baseSiteURL(string: loginFields.siteAddress)
185+
let successBlock: (WordPressComSiteInfo) -> Void = { [weak self] siteInfo in
186+
self?.loginFields.meta.siteInfo = siteInfo
187+
if WordPressAuthenticator.shared.delegate?.allowWPComLogin == false {
188+
self?.promptUserToLogoutBeforeConnectingWPComSite()
189+
self?.configureViewLoading(false)
190+
} else {
191+
self?.showSelfHostedUsernamePassword()
192+
}
193+
}
185194
if let siteAddress = baseSiteUrl.components(separatedBy: "://").last {
186-
187195
let service = WordPressComBlogService()
188-
service.fetchSiteInfo(for: siteAddress, success: { [weak self] siteInfo in
189-
self?.loginFields.meta.siteInfo = siteInfo
190-
if WordPressAuthenticator.shared.delegate?.allowWPComLogin == false {
191-
self?.promptUserToLogoutBeforeConnectingWPComSite()
192-
self?.configureViewLoading(false)
196+
service.fetchSiteInfo(for: siteAddress, success: successBlock, failure: { [weak self] (error) in
197+
// If fetchSiteInfo failed due to the site is being private (errorCode == .authorizationRequired) we try to fetch the site info with a call to connect/site-info endpoint. If this call succeeds we check if login allowed
198+
let originalError = error as NSError
199+
let errorCode = WordPressComRestApiError(rawValue: originalError.code)
200+
if errorCode == .authorizationRequired {
201+
service.fetchUnauthenticatedSiteInfoForAddress(for: baseSiteUrl, success: successBlock, failure: { error in
202+
self?.showSelfHostedUsernamePassword()
203+
})
193204
} else {
194205
self?.showSelfHostedUsernamePassword()
195206
}
196-
197-
}, failure: { [weak self] (error) in
198-
self?.showSelfHostedUsernamePassword()
199207
})
200208

201209
} else {

0 commit comments

Comments
 (0)