~ubuntu-branches/debian/sid/python-django/sid

« back to all changes in this revision

Viewing changes to django/contrib/admindocs/middleware.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone
  • Date: 2013-11-07 15:33:49 UTC
  • mfrom: (1.3.12)
  • Revision ID: package-import@ubuntu.com-20131107153349-e31sc149l2szs3jb
Tags: 1.6-1
* New upstream version. Closes: #557474, #724637.
* python-django now also suggests the installation of ipython,
  bpython, python-django-doc, and libgdal1.
  Closes: #636511, #686333, #704203
* Set package maintainer to Debian Python Modules Team.
* Bump standards version to 3.9.5, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from django.conf import settings
 
2
from django import http
 
3
 
 
4
class 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
        assert hasattr(request, 'user'), (
 
16
            "The XView middleware requires authentication middleware to be "
 
17
            "installed. Edit your MIDDLEWARE_CLASSES setting to insert "
 
18
            "'django.contrib.auth.middleware.AuthenticationMiddleware'.")
 
19
        if request.method == 'HEAD' and (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or
 
20
                                         (request.user.is_active and request.user.is_staff)):
 
21
            response = http.HttpResponse()
 
22
            response['X-View'] = "%s.%s" % (view_func.__module__, view_func.__name__)
 
23
            return response