From cd5fe9b4079c848667b1e7c41b2f5d6ab173ee5f Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Thu, 7 May 2015 19:14:08 +0200 Subject: [PATCH] webui: don't log in back after logout Automatic login attempt is initiated by first failed xhr request which happens in metadata phase. New phase was added before metadata phase. It interrupts UI load and shows login page if it's directly after logout(marked in session storage). Successfull manual login resolves the phase so that metadata phase can follow. https://fedorahosted.org/freeipa/ticket/5008 Reviewed-By: Martin Basti --- install/ui/src/freeipa/app_container.js | 18 +++++++++++++++++- install/ui/src/freeipa/ipa.js | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/install/ui/src/freeipa/app_container.js b/install/ui/src/freeipa/app_container.js index 7f5aacca0..0a49307e3 100644 --- a/install/ui/src/freeipa/app_container.js +++ b/install/ui/src/freeipa/app_container.js @@ -21,13 +21,14 @@ define([ 'dojo/_base/lang', 'dojo/Deferred', + 'dojo/on', 'dojo/when', './plugin_loader', './phases', './reg', './Application_controller', 'exports' -],function(lang, Deferred, when, plugin_loader, phases, reg, Application_controller, app) { +],function(lang, Deferred, on, when, plugin_loader, phases, reg, Application_controller, app) { /** * Application wrapper @@ -60,6 +61,21 @@ define([ return app; })); + phases.on('init', lang.hitch(this, function() { + var deferred = new Deferred(); + if (window.sessionStorage.getItem('logout')) { + window.sessionStorage.removeItem('logout'); + var login_facet = reg.facet.get('login'); + this.app.show_facet(login_facet); + on.once(login_facet, "logged_in", function() { + deferred.resolve(); + }); + } else { + deferred.resolve(); + } + return deferred.promise; + })); + phases.on('metadata', lang.hitch(this, function() { var deferred = new Deferred(); diff --git a/install/ui/src/freeipa/ipa.js b/install/ui/src/freeipa/ipa.js index 836ad689b..75dd73c37 100644 --- a/install/ui/src/freeipa/ipa.js +++ b/install/ui/src/freeipa/ipa.js @@ -409,6 +409,7 @@ IPA.logout = function() { } function reload () { + window.sessionStorage.setItem('logout', true); var l = window.location; l.assign(l.href.split('#')[0]); }