diff --git a/cam/filters/archimed.py b/cam/filters/archimed.py index cd35139..f7c0750 100644 --- a/cam/filters/archimed.py +++ b/cam/filters/archimed.py @@ -23,14 +23,18 @@ def default_req(env, values, request): request.cookies['S_HTTP_REFERER'] = re.sub(r'\?SAMLRequest=.*$', '', str(request.cookies['S_HTTP_REFERER'])) - return request def default_resp(env, values, request, response): try: response.msg = response.msg.decode('utf-8') except UnicodeDecodeError: response.msg = response.msg.decode('iso8859-15') - response.msg = re.sub(r'http://[s]*' + env['target'].netloc, + if response.headers.has_key('location'): + print response.headers['location'][0] + response.headers['location'][0] = re.sub(r'http[s]*://' + env['target'].netloc, + env['mandaye.scheme'] + '://' + env["HTTP_HOST"], + response.headers['location'][0]) + response.msg = re.sub(r'http[s]*://' + env['target'].netloc, env['mandaye.scheme'] + '://' + env["HTTP_HOST"], response.msg) response.msg = response.msg.encode('utf-8') @@ -106,64 +110,6 @@ def json_response(env, values, request, response): request.msg = content return get_response(env, request, target) -def rewrite_login_box(env, values, request, response): - if response.msg: - response.msg = response.msg.replace( - 'http://player.vimeo.com', - 'https://player.vimeo.com' - ) - if response.msg and \ - 'id="perso_authentification"' in response.msg and \ - 'action="logon.aspx"' in response.msg: - r = re.compile( - r'', - re.MULTILINE|re.DOTALL) - - response.msg = re.sub(r, - r""" -
-
- Se connecter avec son compte citoyen Montpellier Agglo - -
- - Préinscription en ligne - - """, - response.msg) - return response - -def rewrite_logged_box(env, values, request, response): - session = env.get('beaker.session') - if response.msg and \ - 'id="compte"' in response.msg and \ - 'class="account_logoff"' in response.msg and \ - session and \ - session.has_key('unique_id'): - r = re.compile( - r'', - re.MULTILINE|re.DOTALL) - - resp = re.sub(r, - r""" - - - Me déconnecter -
- Me délier du compte Montpellier Agglo""", - response.msg) - response.msg = resp - return response - def registration_req(env, values, request): session = env['beaker.session'] if request.msg: diff --git a/cam/mappers/archimed_saml.py b/cam/mappers/archimed_saml.py index fe927f9..b6f2db0 100644 --- a/cam/mappers/archimed_saml.py +++ b/cam/mappers/archimed_saml.py @@ -18,7 +18,9 @@ urls = { 'login_url': '/mandaye/login', 'connection_url': '/mandaye/sso', 'associate_url': '/mandaye/associate', - 'logout_url': '/mandaye/slo', + 'disassociate_url': '/mandaye/disassociate', + 'disassociate_next_url': '/mandaye/logout', + 'logout_url': '/mandaye/logout', } mapping = [ @@ -36,18 +38,6 @@ mapping = [ 'content-types': ['text/html', 'application/javascript', 'application/x-javascript', 'application/json'], }] }, - { - 'path': r'/%s/|/%s/' % (base, base.lower()), - 'method': 'GET', - 'content-types': ['text/html'], - 'on_response': [{ - 'filter': archimed.rewrite_login_box, - }, - { - 'filter': archimed.rewrite_logged_box - }, - ] - }, { 'path': r'/mandaye/login$', 'method': 'GET', @@ -64,11 +54,6 @@ mapping = [ 'method': 'GET', 'response': {'auth': 'sso',} }, - { - 'path': r'/mandaye/slo$', - 'method': 'GET', - 'response': {'auth': 'slo',} - }, { 'path': r'%s$' % END_POINTS_PATH['single_sign_on_post'], 'method': 'POST', @@ -117,11 +102,6 @@ mapping = [ }, }] }, - { - 'path': r'/mandaye/disassociate$', - 'method': 'GET', - 'response': {'auth': 'disassociate',}, - }, { 'path': r'/mandaye/associate_confirm$', 'method': 'GET', diff --git a/cam/mappers/imuse.py b/cam/mappers/imuse.py index 39f7497..3d37419 100644 --- a/cam/mappers/imuse.py +++ b/cam/mappers/imuse.py @@ -15,6 +15,7 @@ urls = { 'connection_url': '/mandaye/sso', 'associate_url': '/montpellier/extranet/login/mandaye_associate', 'disassociate_url': '/mandaye/disassociate', + 'disassociate_next_url': '/mandaye/logout?next_url=/montpellier/extranet/login/usa_index_famille.php', } replay_condition = lambda env, response: "OK" in response.msg diff --git a/cam/templates/toolbar.html b/cam/templates/toolbar.html index 08321da..42169ab 100644 --- a/cam/templates/toolbar.html +++ b/cam/templates/toolbar.html @@ -14,7 +14,7 @@ % if account:
  • - Me désassocier + Délier mon compte
  • % endif % elif is_user_locally_logged_in: