summaryrefslogtreecommitdiffstats
path: root/google_appengine/lib/django/django/middleware/doc.py
diff options
context:
space:
mode:
Diffstat (limited to 'google_appengine/lib/django/django/middleware/doc.py')
-rwxr-xr-xgoogle_appengine/lib/django/django/middleware/doc.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/google_appengine/lib/django/django/middleware/doc.py b/google_appengine/lib/django/django/middleware/doc.py
new file mode 100755
index 0000000..48c155c
--- /dev/null
+++ b/google_appengine/lib/django/django/middleware/doc.py
@@ -0,0 +1,18 @@
+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_authenticated() and request.user.is_staff)):
+ response = http.HttpResponse()
+ response['X-View'] = "%s.%s" % (view_func.__module__, view_func.__name__)
+ return response