From 5bf825bfd48aea5f83faec30fc6fdb46faab8f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Peters?= Date: Mon, 17 Nov 2008 11:13:55 +0100 Subject: [PATCH] configurable per-collectivity url on logout --- extra/modules/admin.ptl | 4 +++- extra/modules/collectivity.py | 2 +- extra/modules/root.ptl | 12 ++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/extra/modules/admin.ptl b/extra/modules/admin.ptl index 9bc294c..92d18d5 100644 --- a/extra/modules/admin.ptl +++ b/extra/modules/admin.ptl @@ -103,6 +103,8 @@ class CollectivityUI: value = self.collectivity.name) form.add(StringWidget, 'msp_tsid', title = _('MSP tsId'), required = False, size = 10, value = self.collectivity.msp_tsid) + form.add(StringWidget, 'url_on_logout', title = _('URL on Logout'), required = False, + size = 30, value = self.collectivity.url_on_logout) form.add_submit('submit', _('Submit')) form.add_submit('cancel', _('Cancel')) return form @@ -114,7 +116,7 @@ class CollectivityUI: return self.form() def submit_form(self, form): - for f in ('id', 'name', 'msp_tsid'): + for f in ('id', 'name', 'msp_tsid', 'url_on_logout'): if form.get_widget(f): setattr(self.collectivity, f, form.get_widget(f).parse()) diff --git a/extra/modules/collectivity.py b/extra/modules/collectivity.py index f231724..9dde2c5 100644 --- a/extra/modules/collectivity.py +++ b/extra/modules/collectivity.py @@ -8,4 +8,4 @@ class Collectivity(StorableObject): own_idp = None propose_msp = True msp_tsid = None - + url_on_logout = None diff --git a/extra/modules/root.ptl b/extra/modules/root.ptl index d1e88f2..51febda 100644 --- a/extra/modules/root.ptl +++ b/extra/modules/root.ptl @@ -1,7 +1,7 @@ import lasso import Cookie -from quixote import redirect, get_session, get_session_manager, get_response, get_field +from quixote import redirect, get_session, get_session_manager, get_response, get_field, get_request from qommon import get_cfg, get_logger from qommon.form import * from qommon import template @@ -506,7 +506,15 @@ class AlternateRootDirectory(OldRootDirectory): # have been fixed if cap gemini described their actions... pass get_session_manager().expire_session() - return redirect('http://adeltest.servicepubliclocal.net/vandoeuvre/') + coll_id = get_request().get_header('X-Gdd-Account-Number') + if coll_id: + try: + coll = Collectivity.get(coll_id) + if coll.url_on_logout: + return redirect(coll.url_on_logout) + except KeyError: + pass + return redirect('/') def register [html] (self): identities_cfg = get_cfg('identities', {})