summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2015-05-07 19:14:08 +0200
committerPetr Vobornik <pvoborni@redhat.com>2015-06-05 19:16:49 +0200
commitcd5fe9b4079c848667b1e7c41b2f5d6ab173ee5f (patch)
tree88d128858bfe8cca0507c5c6edd26ee7453db568
parent355b6d416d800692f7028e057ff76aab9f8c0470 (diff)
downloadfreeipa-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>
-rw-r--r--install/ui/src/freeipa/app_container.js18
-rw-r--r--install/ui/src/freeipa/ipa.js1
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]);
}