From 13cb8979ace2637d7bf44fc13f21d4181c9de104 Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Tue, 17 Aug 2021 20:54:24 +0530 Subject: [PATCH] Check correct login method early Signed-off-by: RMidhunSuresh --- src/domain/login/CompleteSSOLoginViewModel.js | 9 ++++++--- src/domain/login/PasswordLoginViewModel.js | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/domain/login/CompleteSSOLoginViewModel.js b/src/domain/login/CompleteSSOLoginViewModel.js index f64c5b94..bf98cefc 100644 --- a/src/domain/login/CompleteSSOLoginViewModel.js +++ b/src/domain/login/CompleteSSOLoginViewModel.js @@ -41,15 +41,18 @@ export class CompleteSSOLoginViewModel extends ViewModel { } const homeserver = await this.platform.settingsStorage.getString("sso_ongoing_login_homeserver"); const loginOptions = await this._sessionContainer.queryLogin(homeserver); + if (!loginOptions.token) { + const path = this.navigation.pathFrom([this.navigation.segment("session")]); + this.navigation.applyPath(path); + return; + } this._loadViewModelSubscription = this.disposeTracked(this._loadViewModelSubscription); if (this._loadViewModel) { this._loadViewModel = this.disposeTracked(this._loadViewModel); } this._loadViewModel = this.track(new SessionLoadViewModel(this.childOptions({ createAndStartSessionContainer: async () => { - if (loginOptions.sso) { - this._sessionContainer.startWithLogin(loginOptions.token(this._loginToken)); - } + this._sessionContainer.startWithLogin(loginOptions.token(this._loginToken)); return this._sessionContainer; }, ready: this._ready, diff --git a/src/domain/login/PasswordLoginViewModel.js b/src/domain/login/PasswordLoginViewModel.js index 496d431d..5feee9b5 100644 --- a/src/domain/login/PasswordLoginViewModel.js +++ b/src/domain/login/PasswordLoginViewModel.js @@ -49,15 +49,18 @@ export class PasswordLoginViewModel extends ViewModel { } async login(username, password, homeserver) { + if (!this._loginOptions.password) { + const path = this.navigation.pathFrom([this.navigation.segment("session")]); + this.navigation.applyPath(path); + return; + } this._loadViewModelSubscription = this.disposeTracked(this._loadViewModelSubscription); if (this._loadViewModel) { this._loadViewModel = this.disposeTracked(this._loadViewModel); } this._loadViewModel = this.track(new SessionLoadViewModel(this.childOptions({ createAndStartSessionContainer: async () => { - if (this._loginOptions.password) { - this._sessionContainer.startWithLogin(this._loginOptions.password(username, password)); - } + this._sessionContainer.startWithLogin(this._loginOptions.password(username, password)); return this._sessionContainer; }, ready: this._ready,