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 -- Petr Vobornik
From c31b8a1cb8c931a69748ac25a06b940a318accad Mon Sep 17 00:00:00 2001 From: Petr Vobornik <pvobo...@redhat.com> 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 --- 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 7f5aacca0758f19ee6209f1b253158266b97aff4..0a49307e31f4875724ee430f32c9483a23c6b51e 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 836ad689bd82253632c28f54b9a9386996c80b12..75dd73c379815a0e0e1dc2c4d786fdcf3be7c1b0 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]); } -- 2.1.0
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code