[Lada-commits] [PATCH 1 of 3] Adopted Client to SSO, detect a Sessiontimeout and reload the application
Wald Commits
scm-commit at wald.intevation.org
Fri Aug 14 13:31:54 CEST 2015
# HG changeset patch
# User Dustin Demuth <dustin at intevation.de>
# Date 1439551670 -7200
# Node ID f220ba587c89b8889647a692e281647a1a254bc6
# Parent c8599a543f03822702ec8470f91f468aa5766774
Adopted Client to SSO, detect a Sessiontimeout and reload the application
diff -r c8599a543f03 -r f220ba587c89 app/controller/FilterResult.js
--- a/app/controller/FilterResult.js Fri Aug 14 10:34:53 2015 +0200
+++ b/app/controller/FilterResult.js Fri Aug 14 13:27:50 2015 +0200
@@ -170,34 +170,32 @@
method: 'POST',
url: 'lada-server/export/laf',
jsonData: {'proben': proben},
- headers: {'X-OPENID-PARAMS': Lada.openIDParams},
success: function(response) {
var content = response.responseText;
var blob = new Blob([content],{type: 'text/plain'});
saveAs(blob, 'export.laf');
},
failure: function(response) {
+ /*
+ 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',
+ '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);
+ }
+ // further error handling
var json = Ext.JSON.decode(response.responseText);
if (json) {
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. */
- Ext.MessageBox.confirm('Erneutes Login erforderlich',
- 'Der Server konnte die Anfrage nicht authentifizieren.<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);
- }
- else if(json.message){
+ if(json.message){
Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.generic.title')
+' #'+json.message,
Lada.getApplication().bundle.getMsg(json.message));
diff -r c8599a543f03 -r f220ba587c89 app/override/RestProxy.js
--- 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);
},
diff -r c8599a543f03 -r f220ba587c89 app/view/window/DeleteProbe.js
--- a/app/view/window/DeleteProbe.js Fri Aug 14 10:34:53 2015 +0200
+++ b/app/view/window/DeleteProbe.js Fri Aug 14 13:27:50 2015 +0200
@@ -53,9 +53,6 @@
//TODO Use correct URLs
url: 'lada-server/probe/'+me.record.get('id'),
method: 'DELETE',
- headers: {
- 'X-OPENID-PARAMS': Lada.openIDParams
- },
success: function(response) {
var json = Ext.JSON.decode(response.responseText);
if (json.success && json.message === '200') {
@@ -88,22 +85,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));
diff -r c8599a543f03 -r f220ba587c89 app/view/window/GenProbenFromMessprogramm.js
--- 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));
More information about the Lada-commits
mailing list