diff app/view/window/GenProbenFromMessprogramm.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 8054232535ba
children f73ca04d73a7
line wrap: on
line diff
--- a/app/view/window/GenProbenFromMessprogramm.js	Fri Aug 14 10:34:53 2015 +0200
+++ b/app/view/window/GenProbenFromMessprogramm.js	Fri Aug 14 13:27:50 2015 +0200
@@ -58,9 +58,6 @@
                 Ext.Ajax.request({
                     url: 'lada-server/probe/messprogramm',
                     method: 'POST',
-                    headers: {
-                        'X-OPENID-PARAMS': Lada.openIDParams
-                    },
                     jsonData: jsondata,
                     success: function(response) {
                         var json = Ext.JSON.decode(response.responseText);
@@ -85,22 +82,21 @@
                             if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
                                 formPanel.setMessages(json.errors, json.warnings);
                             }
-                            // TODO Move this handling of 699 and 698 to a more central place!
-                            // TODO i18n
-                            if (json.message === "699" || json.message === "698") {
-                                /* This is the unauthorized message with the authentication
-                                    * redirect in the data */
-
-                                /* 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. */
+                            /*
+                            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 (response.status == 0 && response.responseText === "") {
                                 Ext.MessageBox.confirm('Erneutes Login erforderlich',
-                                    'Der Server konnte die Anfrage nicht authentifizieren.<br/>'+
+                                    '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?', me.reload);
+                                    'Soll die Anwendung jetzt neu geladen werden?', this.reload);
                             }
-                            else if(json.message){
+                            // further error handling
+                            if(json.message){
                                 Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.generic.title')
                                     +' #'+json.message,
                                     Lada.getApplication().bundle.getMsg(json.message));

http://lada.wald.intevation.org