diff -r 8d941af65caf -r 77b6da96e6f1 web/lib/django/middleware/doc.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/django/middleware/doc.py Wed Jun 02 18:57:35 2010 +0200 @@ -0,0 +1,19 @@ +from django.conf import settings +from django import http + +class XViewMiddleware(object): + """ + Adds an X-View header to internal HEAD requests -- used by the documentation system. + """ + def process_view(self, request, view_func, view_args, view_kwargs): + """ + If the request method is HEAD and either the IP is internal or the + user is a logged-in staff member, quickly return with an x-header + indicating the view function. This is used by the documentation module + to lookup the view function for an arbitrary page. + """ + if request.method == 'HEAD' and (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or + (request.user.is_active and request.user.is_staff)): + response = http.HttpResponse() + response['X-View'] = "%s.%s" % (view_func.__module__, view_func.__name__) + return response