Add load org before request to allow current_org to be accessible from request context

This commit is contained in:
Ken Tsang
2018-02-13 16:40:04 +00:00
committed by chrisw
parent 96b66829a1
commit c1e3658a8f
5 changed files with 28 additions and 8 deletions

View File

@@ -142,6 +142,7 @@ def init_app(application):
application.after_request(useful_headers_after_request)
application.after_request(save_service_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)
@application.before_request
@@ -405,6 +406,29 @@ def load_service_before_request():
raise
def load_organisation_before_request():
if '/static/' in request.url:
_request_ctx_stack.top.organisation = None
return
if _request_ctx_stack.top is not None:
_request_ctx_stack.top.organisation = None
if request.view_args:
org_id = request.view_args.get('org_id', session.get('org_id'))
else:
org_id = session.get('org_id')
if org_id:
try:
_request_ctx_stack.top.organisation = organisations_client.get_organisation(org_id)
except HTTPError as exc:
# if org id isn't real, then 404 rather than 500ing later because we expect org to be set
if exc.status_code == 404:
abort(404)
else:
raise
def save_service_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

View File

@@ -23,12 +23,10 @@ def organisations():
@login_required
@user_has_permissions(admin_override=True)
def organisation_dashboard(org_id):
org = organisations_client.get_organisation(org_id)
organisation_services = organisations_client.get_organisation_services(org_id)
return render_template(
'views/organisations/organisation-dashboard.html',
organisation=org,
organisation_services=organisation_services
)

View File

@@ -8,8 +8,7 @@
<div id="content">
<div class="navigation-service">
<div class="navigation-service-name">
{{ current_service.name }}
Hello
{{ current_org.name }}
</div>
<a href="{{ url_for('main.choose_service') }}" class="navigation-service-switch">Switch service</a>
</div>

View File

@@ -1,17 +1,17 @@
{% extends "org_template.html" %}
{% block per_page_title %}
{{ organisation['name'] }}
{{ current_org.name }}
{% endblock %}
{% block service_page_title %}
{{ organisation['name'] }}
{{ current_org.name }}
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">
{{ organisation['name'] }}
{{ current_org.name }}
</h1>
<ul>
{% for service in organisation_services %}

View File

@@ -9,7 +9,6 @@
<div class="navigation-service">
<div class="navigation-service-name">
{{ current_service.name }}
Hello
</div>
<a href="{{ url_for('main.choose_service') }}" class="navigation-service-switch">Switch service</a>
</div>