From 04bfc362a2b4a1e717ae94004cf8f16e86f2fb56 Mon Sep 17 00:00:00 2001 From: Leo Hemsted Date: Wed, 7 Mar 2018 18:30:26 +0000 Subject: [PATCH] save the organisation to the session after the user visits an org page also remove the service/org from the session if the user is on a diff type page, to make sure the redirects from /services-or-dashboard plays nicely --- app/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index c469b4a27..de4c0a949 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -144,7 +144,7 @@ def create_app(application): def init_app(application): application.after_request(useful_headers_after_request) - application.after_request(save_service_after_request) + application.after_request(save_service_or_org_after_request) application.before_request(load_service_before_request) application.before_request(load_organisation_before_request) application.before_request(request_helper.check_proxy_header_before_request) @@ -446,11 +446,17 @@ def load_organisation_before_request(): raise -def save_service_after_request(response): +def save_service_or_org_after_request(response): # Only save the current session if the request is 200 service_id = request.view_args.get('service_id', None) if request.view_args else None - if response.status_code == 200 and service_id: - session['service_id'] = service_id + organisation_id = request.view_args.get('org_id', None) if request.view_args else None + if response.status_code == 200: + if service_id: + session['service_id'] = service_id + session['organisation_id'] = None + elif organisation_id: + session['service_id'] = None + session['organisation_id'] = organisation_id return response