From 6c303d0af45d20142985d4494382d73b896354ce Mon Sep 17 00:00:00 2001 From: root Date: Thu, 11 Dec 2008 15:40:56 +0100 Subject: [PATCH] Add handling of ReturnToURL parameter and default return to demarche2424 - on method login_msp and federate_msp add handling of optional ReturnToURL parameter, and if not present automatically do SSO to demarche2424. --- extra/modules/root.ptl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/extra/modules/root.ptl b/extra/modules/root.ptl index fe94167..5ec151f 100644 --- a/extra/modules/root.ptl +++ b/extra/modules/root.ptl @@ -240,18 +240,24 @@ class AlternateRootDirectory(OldRootDirectory): def federate_msp(self): + return_to_url = get_field('ReturnToURL') if get_field('idTs'): for coll in collectivity.Collectivity.select(): if coll.msp_tsid == get_field('idTs'): resp = get_response() resp.set_header('X-Gdd-Account-Number', coll.id) + if not return_to_url: + return_to_url = '/liberty/sp/http-mes-demarches.valid.monservicepubliclocal.fr-Admin2424-valid-liberty-metadata/login' break session = get_session() if not session.user: session.msp_init_federate = True return redirect('login') - get_session().peer_cancelled = False + session = get_session() + if return_to_url: + session.after_url = return_to_url + session.peer_cancelled = False return self.sso_to_msp(nameIdPolicy = 'federated') def login_msp_for_proxy(self): @@ -261,14 +267,20 @@ class AlternateRootDirectory(OldRootDirectory): return redirect('login_msp') def login_msp(self): + return_to_url = get_field('ReturnToURL') if get_field('idTs'): for coll in collectivity.Collectivity.select(): if coll.msp_tsid == get_field('idTs'): resp = get_response() resp.set_header('X-Gdd-Account-Number', coll.id) + if not return_to_url: + return_to_url = '/liberty/sp/http-mes-demarches.valid.monservicepubliclocal.fr-Admin2424-valid-liberty-metadata/login' break - get_session().peer_cancelled = False + session = get_session() + if return_to_url: + session.after_url = return_to_url + session.peer_cancelled = False return self.sso_to_msp() def login(self):