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

Commit 0fc37d1

Browse files
authored
Detect invalid WP site and return error (#841)
2 parents 01c8c7d + 958e0c8 commit 0fc37d1

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ _None._
4242

4343
### Bug Fixes
4444

45-
_None._
45+
- Detect invalid WordPress site address. [#841]
4646

4747
### Internal Changes
4848

WordPressAuthenticator/Services/WordPressComBlogService.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ class WordPressComBlogService {
4242
}
4343

4444
let site = WordPressComSiteInfo(remote: response)
45+
guard site.url != Constants.wordPressBlogURL else {
46+
failure(ServiceError.invalidWordPressAddress)
47+
return
48+
}
4549
success(site)
4650
}, failure: { error in
4751
let result = error ?? ServiceError.unknown
@@ -53,8 +57,12 @@ class WordPressComBlogService {
5357
// MARK: - Nested Types
5458
//
5559
extension WordPressComBlogService {
60+
enum Constants {
61+
static let wordPressBlogURL = "https://wordpress.com/blog"
62+
}
5663

5764
enum ServiceError: Error {
5865
case unknown
66+
case invalidWordPressAddress
5967
}
6068
}

WordPressAuthenticator/Unified Auth/View Related/Site Address/SiteAddressViewController.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -541,12 +541,19 @@ private extension SiteAddressViewController {
541541
self.presentNextControllerIfPossible(siteInfo: siteInfo)
542542
}
543543

544-
service.fetchUnauthenticatedSiteInfoForAddress(for: baseSiteUrl, success: successBlock, failure: { [weak self] _ in
544+
service.fetchUnauthenticatedSiteInfoForAddress(for: baseSiteUrl, success: successBlock, failure: { [weak self] error in
545545
self?.configureViewLoading(false)
546546
guard let self = self else {
547547
return
548548
}
549-
self.presentNextControllerIfPossible(siteInfo: nil)
549+
550+
if self.authenticationDelegate.shouldHandleError(error) {
551+
self.authenticationDelegate.handleError(error) { [weak self] customUI in
552+
self?.navigationController?.pushViewController(customUI, animated: true)
553+
}
554+
} else {
555+
self.displayError(message: Localization.invalidURL)
556+
}
550557
})
551558
}
552559

0 commit comments

Comments
 (0)