From a0378cd57220a554e338d9b77426d82fb27a4502 Mon Sep 17 00:00:00 2001 From: Thomas CHEMINEAU Date: Mon, 26 Apr 2010 13:10:04 +0000 Subject: [PATCH] SAML: hide submit button when SLO info page is displayed --- .../lemonldap-ng-portal/example/skins/common/portal.js | 8 ++++++++ modules/lemonldap-ng-portal/example/skins/impact/info.tpl | 5 ++++- modules/lemonldap-ng-portal/example/skins/pastel/info.tpl | 5 ++++- .../lib/Lemonldap/NG/Portal/IssuerDBSAML.pm | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/modules/lemonldap-ng-portal/example/skins/common/portal.js b/modules/lemonldap-ng-portal/example/skins/common/portal.js index 4d4397968..1c7ab2f8c 100644 --- a/modules/lemonldap-ng-portal/example/skins/common/portal.js +++ b/modules/lemonldap-ng-portal/example/skins/common/portal.js @@ -40,3 +40,11 @@ $(document).ready(function(){ if(login){ $("input[type=password]:first").focus(); } if(newwindow){ $('#appslist a[href^="http://"]').attr("target", "_blank"); } }); + +function isHiddenFormValueSet(option){ + if($('#lmhidden_'+option).length){ + return true; + }else{ + return false; + } +} diff --git a/modules/lemonldap-ng-portal/example/skins/impact/info.tpl b/modules/lemonldap-ng-portal/example/skins/impact/info.tpl index 9260868f3..fb0458715 100644 --- a/modules/lemonldap-ng-portal/example/skins/impact/info.tpl +++ b/modules/lemonldap-ng-portal/example/skins/impact/info.tpl @@ -34,7 +34,7 @@ } function go() { if(_go) { - if($("#lmhidden_HttpRedirect").length){ + if(isHiddenFormValueSet('HttpRedirect')){ url=$("#form").attr('action'); window.location=url; }else{ @@ -50,6 +50,9 @@ window.setTimeout('timer()',1000); } $(document).ready(function(){ + if(isHiddenFormValueSet('HideSubmitButton')){ + $('#form button[type=submit]').attr('disabled','disabled'); + } window.setTimeout('go()',10000); window.setTimeout('timer()',1000); }); diff --git a/modules/lemonldap-ng-portal/example/skins/pastel/info.tpl b/modules/lemonldap-ng-portal/example/skins/pastel/info.tpl index 5358fb3c1..5c27650bc 100644 --- a/modules/lemonldap-ng-portal/example/skins/pastel/info.tpl +++ b/modules/lemonldap-ng-portal/example/skins/pastel/info.tpl @@ -32,7 +32,7 @@ } function go() { if(_go) { - if($("#lmhidden_HttpRedirect").length){ + if(isHiddenFormValueSet('HttpRedirect')){ url=$("#form").attr('action'); window.location=url; }else{ @@ -48,6 +48,9 @@ window.setTimeout('timer()',1000); } $(document).ready(function(){ + if(isHiddenFormValueSet('HideSubmitButton')){ + $('#form button[type=submit]').attr('disabled','disabled'); + } window.setTimeout('go()',10000); window.setTimeout('timer()',1000); }); diff --git a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/IssuerDBSAML.pm b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/IssuerDBSAML.pm index f36049228..afcea0a8e 100644 --- a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/IssuerDBSAML.pm +++ b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/IssuerDBSAML.pm @@ -990,6 +990,7 @@ sub sendLogoutRequestToServiceProviders { if ($providerCount) { $self->info($info); $self->setHiddenFormValue( 'HttpRedirect', 'true' ); + $self->setHiddenFormValue( 'HideSubmitButton', 'true' ); } return $providerCount;