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]); }