From ae81e867b7da831ff0755b3bf1ac1a95da3e77e8 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Nov 2008 12:38:56 +0100 Subject: [PATCH] Add a confirmation page when asking for defederation --- extra/modules/alternatespui.ptl | 45 +++++++++++++++++++++++++++++++++ extra/modules/liberty.py | 3 +++ extra/modules/root.ptl | 4 +-- 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 extra/modules/alternatespui.ptl diff --git a/extra/modules/alternatespui.ptl b/extra/modules/alternatespui.ptl new file mode 100644 index 0000000..d5d9ff1 --- /dev/null +++ b/extra/modules/alternatespui.ptl @@ -0,0 +1,45 @@ +import time +import sys +import re +import base64 +import Cookie +import StringIO +import cgi +import traceback +import socket +import xml.sax.saxutils + +import lasso + +try: + import lassodgme +except ImportError: + print >> sys.stderr, 'Missing lassodgme module; ID-WSF proxy has been disabled' + lassodgme = None + +from quixote import get_session, get_session_manager, get_request, get_response, redirect, get_field, get_publisher +from quixote.http_request import parse_header + +from qommon import get_cfg, get_logger +from qommon import errors, template + +import misc + +import authentic.liberty.root +from authentic.liberty.root import SOAPError + + +class AlternateSpUI(authentic.liberty.root.SpUI): + _q_exports = ['proxy_terminate_confirm','terminate','login','proxy_terminate'] + + def proxy_terminate_confirm [html] (self): + template.html_top() + u'

Souhaitez-vous vraiment supprimer la liaison avec Mon Service Public ?

' + u'

' + +class AlternateSpDir(authentic.liberty.root.SpDir): + def _q_lookup(self, component): + return AlternateSpUI(component) diff --git a/extra/modules/liberty.py b/extra/modules/liberty.py index 2ba3c48..0f935df 100644 --- a/extra/modules/liberty.py +++ b/extra/modules/liberty.py @@ -27,6 +27,7 @@ import misc import authentic.liberty.root from authentic.liberty.root import SOAPError +from alternatespui import AlternateSpDir ED_MIGRATION_DISABLED = False ED_DOCUMENTS_MIGRATION_DISABLED = True @@ -58,6 +59,8 @@ class AlternateLibertyDirectory(authentic.liberty.root.RootDirectory): "proxySoapEndpoint", "proxyAssertionConsumer", "proxySingleLogout", "proxySingleLogoutNext", 'mspProxyEndpoint', 'proxySingleLogoutReturn'] + sp = AlternateSpDir() + def perform_proxy_login(self, idp = None, nameIdPolicy = None, extensions = None): session = get_session() server = authentic.misc.get_lasso_server(lasso.PROVIDER_ROLE_SP) diff --git a/extra/modules/root.ptl b/extra/modules/root.ptl index 9a03552..9391341 100644 --- a/extra/modules/root.ptl +++ b/extra/modules/root.ptl @@ -52,8 +52,6 @@ class MspUserHash(StorableObject): return cls.get(hash) get_by_cookie = classmethod(get_by_cookie) - - class AlternateRootDirectory(OldRootDirectory): _q_exports = ['', 'admin', 'liberty', 'login', 'logout', 'change_password', 'register', 'forgot_password', 'update_info', 'saml', 'singleLogout', @@ -140,7 +138,7 @@ class AlternateRootDirectory(OldRootDirectory): if identity.is_federated_with_msp(): msp_provider_id = get_cfg('adeline', {}).get('msp_idp') klp = get_key_from_provider_id(msp_provider_id) - terminate_url = '/liberty/sp/%s/proxy_terminate' % klp + terminate_url = '/liberty/sp/%s/proxy_terminate_confirm' % klp msp_portal_url = get_cfg('adeline', {}).get('msp_portal_url') '
  • %s %s %s
  • ' % ( _('Access MSP'), msp_portal_url, _('Connect'), terminate_url, _('Remove Link'))