From 3ab5f7b79330293c7a351cf27e15f93f5e0087f9 Mon Sep 17 00:00:00 2001 From: Baptiste Grob <60621355+baptiste-grob@users.noreply.github.com> Date: Wed, 12 Feb 2020 11:26:27 +0100 Subject: [PATCH] fix auto-signin --- app/assets/javascripts/controllers/root.js | 69 ++++++++++------------ 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/app/assets/javascripts/controllers/root.js b/app/assets/javascripts/controllers/root.js index a4f63d0a0..96afc54c8 100644 --- a/app/assets/javascripts/controllers/root.js +++ b/app/assets/javascripts/controllers/root.js @@ -53,11 +53,11 @@ class RootCtrl { this.passcodeManager = passcodeManager; this.defineRootScopeFunctions(); - this.handleAutoSignInFromParams(); this.initializeStorageManager(); this.addAppStateObserver(); - this.addDragDropHandlers(); this.defaultLoad(); + this.handleAutoSignInFromParams(); + this.addDragDropHandlers(); } defineRootScopeFunctions() { @@ -289,45 +289,36 @@ class RootCtrl { }, false); } - handleAutoSignInFromParams() { - const urlParam = (key) => { - return this.$location.search()[key]; - }; + async handleAutoSignInFromParams() { + const params = this.$location.search(); + const server = params['server']; + const email = params['email']; + const password = params['pw']; + console.log(server, email, password); + if (!server || !email || !password) return; - const autoSignInFromParams = async () => { - const server = urlParam('server'); - const email = urlParam('email'); - const pw = urlParam('pw'); - if(!this.authManager.offline()) { - if( - await this.syncManager.getServerURL() === server - && this.authManager.user.email === email - ) { - /** Already signed in, return */ - // eslint-disable-next-line no-useless-return - return; - } else { - /** Sign out */ - this.authManager.signout(true).then(() => { - window.location.reload(); - }); - } - } else { - this.authManager.login( - server, - email, - pw, - false, - false, - {} - ).then((response) => { - window.location.reload(); - }); + if (this.authManager.offline()) { + const { error } = await this.authManager.login( + server, + email, + password, + false, + false, + {} + ); + if (!error) { + window.location.reload(); } - }; - - if(urlParam('server')) { - autoSignInFromParams(); + } else if ( + this.authManager.user.email === email && + (await this.syncManager.getServerURL()) === server + ) { + /** Already signed in, return */ + // eslint-disable-next-line no-useless-return + return; + } else { + this.authManager.signout(true); + window.location.reload(); } } }