/django/middleware/doc.py
Python | 19 lines | 9 code | 1 blank | 9 comment | 4 complexity | 5d8b24b1fcf68cb5471f4d06da12eb90 MD5 | raw file
1from django.conf import settings 2from django import http 3 4class XViewMiddleware(object): 5 """ 6 Adds an X-View header to internal HEAD requests -- used by the documentation system. 7 """ 8 def process_view(self, request, view_func, view_args, view_kwargs): 9 """ 10 If the request method is HEAD and either the IP is internal or the 11 user is a logged-in staff member, quickly return with an x-header 12 indicating the view function. This is used by the documentation module 13 to lookup the view function for an arbitrary page. 14 """ 15 if request.method == 'HEAD' and (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or 16 (request.user.is_active and request.user.is_staff)): 17 response = http.HttpResponse() 18 response['X-View'] = "%s.%s" % (view_func.__module__, view_func.__name__) 19 return response