webui: crash nicely if sessionStorage is not available

https://fedorahosted.org/freeipa/ticket/5643

Reviewed-By: Tomas Babej <tbabej@redhat.com>
This commit is contained in:
Petr Vobornik 2016-01-26 18:55:06 +01:00 committed by Tomas Babej
parent 3a0985b788
commit 6e1eb5bc8f
2 changed files with 19 additions and 6 deletions

View File

@ -257,15 +257,20 @@ define([
'class': 'error-details'
}).appendTo(error_container);
details.append($('<p/>', { text: 'Web UI got in unrecoverable state during "' + error.phase + '" phase' }));
details.append($('<p/>', { text: 'Web UI got in unrecoverable state during "' + error.phase + '" phase.' }));
if (error.name) window.console.error(error.name);
if (error.results) {
var msg = error.results.message;
var stack = error.results.stack.toString();
window.console.error(stack);
details.append('<h3>Technical details:</h3>');
details.append($('<div/>', { text: error.results.message }));
details.append($('<div/>').append($('<code/>', { text: stack })));
var msg = error.results.message;
if (msg) {
window.console.error(msg);
details.append($('<div/>', { text: msg }));
}
if (error.results.stack) {
var stack = error.results.stack.toString();
window.console.error(stack);
details.append($('<div/>').append($('<code/>', { text: stack })));
}
}
},

View File

@ -63,6 +63,14 @@ define([
phases.on('init', lang.hitch(this, function() {
var deferred = new Deferred();
if (!window.sessionStorage) {
deferred.reject({
message: "Web UI requires sessionStorage enabled. " +
"This might be caused by too strict browser " +
"configuration."
});
return deferred.promise;
}
if (window.sessionStorage.getItem('logout')) {
window.sessionStorage.removeItem('logout');
var login_facet = reg.facet.get('login');