diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2015-05-07 19:14:08 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2015-06-05 19:16:49 +0200 |
commit | cd5fe9b4079c848667b1e7c41b2f5d6ab173ee5f (patch) | |
tree | 88d128858bfe8cca0507c5c6edd26ee7453db568 /install | |
parent | 355b6d416d800692f7028e057ff76aab9f8c0470 (diff) | |
download | freeipa-cd5fe9b4079c848667b1e7c41b2f5d6ab173ee5f.tar.gz freeipa-cd5fe9b4079c848667b1e7c41b2f5d6ab173ee5f.tar.xz freeipa-cd5fe9b4079c848667b1e7c41b2f5d6ab173ee5f.zip |
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 <mbasti@redhat.com>
Diffstat (limited to 'install')
-rw-r--r-- | install/ui/src/freeipa/app_container.js | 18 | ||||
-rw-r--r-- | install/ui/src/freeipa/ipa.js | 1 |
2 files changed, 18 insertions, 1 deletions
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]); } |