Author: jezdez Date: 2011-07-03 10:56:25 -0700 (Sun, 03 Jul 2011) New Revision: 16496
Modified: django/trunk/django/middleware/doc.py django/trunk/docs/ref/middleware.txt django/trunk/tests/regressiontests/utils/decorators.py Log: Fixed #14506 -- Added an assertion to XViewMiddleware about the dependency on the authentication middleware. Thanks, vanschelven. Modified: django/trunk/django/middleware/doc.py =================================================================== --- django/trunk/django/middleware/doc.py 2011-07-03 17:56:15 UTC (rev 16495) +++ django/trunk/django/middleware/doc.py 2011-07-03 17:56:25 UTC (rev 16496) @@ -12,6 +12,10 @@ indicating the view function. This is used by the documentation module to lookup the view function for an arbitrary page. """ + assert hasattr(request, 'user'), ( + "The XView middleware requires authentication middleware to be " + "installed. Edit your MIDDLEWARE_CLASSES setting to insert " + "'django.contrib.auth.middleware.AuthenticationMiddleware'.") 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() Modified: django/trunk/docs/ref/middleware.txt =================================================================== --- django/trunk/docs/ref/middleware.txt 2011-07-03 17:56:15 UTC (rev 16495) +++ django/trunk/docs/ref/middleware.txt 2011-07-03 17:56:25 UTC (rev 16496) @@ -80,6 +80,7 @@ Sends custom ``X-View`` HTTP headers to HEAD requests that come from IP addresses defined in the :setting:`INTERNAL_IPS` setting. This is used by Django's :doc:`automatic documentation system </ref/contrib/admin/admindocs>`. +Depends on :class:`~django.contrib.auth.middleware.AuthenticationMiddleware`. GZIP middleware --------------- Modified: django/trunk/tests/regressiontests/utils/decorators.py =================================================================== --- django/trunk/tests/regressiontests/utils/decorators.py 2011-07-03 17:56:15 UTC (rev 16495) +++ django/trunk/tests/regressiontests/utils/decorators.py 2011-07-03 17:56:25 UTC (rev 16496) @@ -1,24 +1,26 @@ from django.http import HttpResponse -from django.middleware.doc import XViewMiddleware from django.template import Template, Context from django.template.response import TemplateResponse from django.test import TestCase, RequestFactory from django.utils.decorators import decorator_from_middleware -xview_dec = decorator_from_middleware(XViewMiddleware) +class ProcessViewMiddleware(object): + def process_view(self, request, view_func, view_args, view_kwargs): + pass +process_view_dec = decorator_from_middleware(ProcessViewMiddleware) -@xview_dec -def xview(request): +@process_view_dec +def process_view(request): return HttpResponse() -class ClassXView(object): +class ClassProcessView(object): def __call__(self, request): return HttpResponse() -class_xview = xview_dec(ClassXView()) +class_process_view = process_view_dec(ClassProcessView()) class FullMiddleware(object): @@ -52,13 +54,13 @@ """ Test a middleware that implements process_view. """ - xview(self.rf.get('/')) + process_view(self.rf.get('/')) def test_callable_process_view_middleware(self): """ Test a middleware that implements process_view, operating on a callable class. """ - class_xview(self.rf.get('/')) + class_process_view(self.rf.get('/')) def test_full_dec_normal(self): """ -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.