Merge pull request #6210 from vector-im/ismail/6176_auth_fallback

This commit is contained in:
ismailgulek
2022-05-31 19:11:32 +03:00
committed by GitHub
21 changed files with 259 additions and 20 deletions
@@ -137,7 +137,7 @@ class AuthenticationService: NSObject {
func reset() {
loginWizard = nil
registrationWizard = nil
// The previously used homeserver is re-used as `startFlow` will be called again a replace it anyway.
let address = state.homeserver.addressFromUser ?? state.homeserver.address
self.state = AuthenticationState(flow: .login, homeserverAddress: address)
@@ -63,8 +63,26 @@ struct AuthenticationState {
AuthenticationHomeserverViewData(address: displayableAddress,
isMatrixDotOrg: isMatrixDotOrg,
showLoginForm: preferredLoginMode.supportsPasswordFlow,
showRegistrationForm: registrationFlow != nil,
showRegistrationForm: registrationFlow != nil && !needsRegistrationFallback,
ssoIdentityProviders: preferredLoginMode.ssoIdentityProviders ?? [])
}
/// Needs authentication fallback for login
var needsLoginFallback: Bool {
return preferredLoginMode.isUnsupported
}
/// Needs authentication fallback for registration
var needsRegistrationFallback: Bool {
guard let flow = registrationFlow else {
return false
}
switch flow {
case .flowResponse(let result):
return result.needsFallback
default:
return false
}
}
}
}
@@ -75,6 +75,15 @@ enum LoginMode {
return false
}
}
var isUnsupported: Bool {
switch self {
case .unsupported:
return true
default:
return false
}
}
}
/// Data obtained when calling `LoginWizard.resetPassword` that will be used