Mercurial > lada > lada-client
diff app/override/RestProxy.js @ 920:f220ba587c89
Adopted Client to SSO, detect a Sessiontimeout and reload the application
author | Dustin Demuth <dustin@intevation.de> |
---|---|
date | Fri, 14 Aug 2015 13:27:50 +0200 |
parents | 2bf35377414a |
children |
line wrap: on
line diff
--- a/app/override/RestProxy.js Fri Aug 14 10:34:53 2015 +0200 +++ b/app/override/RestProxy.js Fri Aug 14 13:27:50 2015 +0200 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 by Bundesamt fuer Strahlenschutz +/* Copyrighte(C) 2015 by Bundesamt fuer Strahlenschutz * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=3) @@ -15,26 +15,25 @@ }, */ processResponse: function (success, operation, request, response, callback, scope) { - /* Check if we were authenticated at one point (Lada.openIDParams) and - * if the response means that we lost that authentcation */ - if (!success && response.status == 401) { - var json = Ext.decode(response.responseText); - if (json) { - if (json.message === "699" || json.message === "698") { - /* This is the unauthorized message with the authentication - * redirect in the data */ + /* + SSO will send a 302 if the Client is not authenticated + unfortunately this seems to be filtered by the browser. + We assume that a 302 was send when the follwing statement + is true. + */ + if (!success && response.status == 0 && response.responseText === "") { + Ext.MessageBox.confirm('Erneutes Login erforderlich', + 'Ihre Session ist abgelaufen.<br/>'+ + 'Für ein erneutes Login muss die Anwendung neu geladen werden.<br/>' + + 'Alle ungesicherten Daten gehen dabei verloren.<br/>' + + 'Soll die Anwendung jetzt neu geladen werden?', this.reload); + } + this.callParent(arguments); + }, - /* We decided to handle this with a redirect to the identity - * provider. In which case we have no other option then to - * handle it here with relaunch. */ - Ext.MessageBox.confirm('Erneutes Login erforderlich', - 'Ihre Session ist abgelaufen.<br/>'+ - 'Für ein erneutes Login muss die Anwendung neu geladen werden.<br/>' + - 'Alle ungesicherten Daten gehen dabei verloren.<br/>' + - 'Soll die Anwendung jetzt neu geladen werden?', this.reload); - } - } - } + + parseStatus: function(status) { + console.log(status); this.callParent(arguments); },