Check correct login method early

Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
This commit is contained in:
RMidhunSuresh 2021-08-17 20:54:24 +05:30
parent 83f4095d88
commit 13cb8979ac
2 changed files with 12 additions and 6 deletions

View file

@ -41,15 +41,18 @@ export class CompleteSSOLoginViewModel extends ViewModel {
} }
const homeserver = await this.platform.settingsStorage.getString("sso_ongoing_login_homeserver"); const homeserver = await this.platform.settingsStorage.getString("sso_ongoing_login_homeserver");
const loginOptions = await this._sessionContainer.queryLogin(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); this._loadViewModelSubscription = this.disposeTracked(this._loadViewModelSubscription);
if (this._loadViewModel) { if (this._loadViewModel) {
this._loadViewModel = this.disposeTracked(this._loadViewModel); this._loadViewModel = this.disposeTracked(this._loadViewModel);
} }
this._loadViewModel = this.track(new SessionLoadViewModel(this.childOptions({ this._loadViewModel = this.track(new SessionLoadViewModel(this.childOptions({
createAndStartSessionContainer: async () => { createAndStartSessionContainer: async () => {
if (loginOptions.sso) {
this._sessionContainer.startWithLogin(loginOptions.token(this._loginToken)); this._sessionContainer.startWithLogin(loginOptions.token(this._loginToken));
}
return this._sessionContainer; return this._sessionContainer;
}, },
ready: this._ready, ready: this._ready,

View file

@ -49,15 +49,18 @@ export class PasswordLoginViewModel extends ViewModel {
} }
async login(username, password, homeserver) { 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); this._loadViewModelSubscription = this.disposeTracked(this._loadViewModelSubscription);
if (this._loadViewModel) { if (this._loadViewModel) {
this._loadViewModel = this.disposeTracked(this._loadViewModel); this._loadViewModel = this.disposeTracked(this._loadViewModel);
} }
this._loadViewModel = this.track(new SessionLoadViewModel(this.childOptions({ this._loadViewModel = this.track(new SessionLoadViewModel(this.childOptions({
createAndStartSessionContainer: async () => { 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; return this._sessionContainer;
}, },
ready: this._ready, ready: this._ready,