Skip to content

Commit

Permalink
Merge pull request #1034 from nyaruka/org_response_header
Browse files Browse the repository at this point in the history
Return org id as response header so that it can be logged in nginx
  • Loading branch information
nicpottier committed Jan 19, 2017
2 parents e65bb7b + 2fb74e2 commit d906dab
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions temba/settings_common.py
Expand Up @@ -170,6 +170,7 @@
'temba.middleware.FlowSimulationMiddleware',
'temba.middleware.ActivateLanguageMiddleware',
'temba.middleware.NonAtomicGetsMiddleware',
'temba.utils.middleware.OrgHeaderMiddleware',
)

ROOT_URLCONF = 'temba.urls'
Expand Down
12 changes: 12 additions & 0 deletions temba/utils/middleware.py
Expand Up @@ -28,3 +28,15 @@ def process_view(self, request, view_func, view_args, view_kwargs):
if getattr(view_func, 'disable_middleware', False):
return view_func(request, *view_args, **view_kwargs)
return None


class OrgHeaderMiddleware(object):
"""
Simple middleware to add a response header with the current org id, which can then be included in logs
"""
def process_response(self, request, response):
if request.user.is_authenticated():
org = request.user.get_org()
if org:
response['X-Temba-Org'] = org.id
return response
19 changes: 19 additions & 0 deletions temba/utils/tests.py
Expand Up @@ -4,11 +4,13 @@

import json
import pytz
import six

from celery.app.task import Task
from datetime import datetime, time
from decimal import Decimal
from django.conf import settings
from django.core.urlresolvers import reverse
from django.core.paginator import Paginator
from django.utils import timezone
from django_redis import get_redis_connection
Expand Down Expand Up @@ -1048,3 +1050,20 @@ def test_currencies(self):
self.assertEqual(currency_for_country('DE').letter, 'EUR')
self.assertEqual(currency_for_country('YE').letter, 'YER')
self.assertEqual(currency_for_country('AF').letter, 'AFN')


class MiddlewareTest(TembaTest):

def test_orgheader(self):
response = self.client.get(reverse('public.public_index'))
self.assertFalse(response.has_header('X-Temba-Org'))

self.login(self.superuser)

response = self.client.get(reverse('public.public_index'))
self.assertFalse(response.has_header('X-Temba-Org'))

self.login(self.admin)

response = self.client.get(reverse('public.public_index'))
self.assertEqual(response['X-Temba-Org'], six.text_type(self.org.id))

0 comments on commit d906dab

Please sign in to comment.