Middleware: Modernize middleware classes

Make the custom middleware provided by Mayan to use the
MiddlewareMixin provide by Django. This make the middleware
classes behave like classes or callables. This change ensures
compatibility with Django 2.x.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-11-25 00:59:39 -04:00
parent 2d5a646940
commit 8e896a54f9
4 changed files with 11 additions and 8 deletions

View File

@@ -2,9 +2,10 @@ from __future__ import unicode_literals
from django.conf import settings
from django.http import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin
class AjaxRedirect(object):
class AjaxRedirect(MiddlewareMixin):
def process_request(self, request):
ajax_referer = request.META.get('HTTP_X_ALT_REFERER')

View File

@@ -4,11 +4,12 @@ import logging
from django.core.exceptions import PermissionDenied
from django.http import Http404
from django.utils.deprecation import MiddlewareMixin
logger = logging.getLogger(__name__)
class ErrorLoggingMiddleware(object):
class ErrorLoggingMiddleware(MiddlewareMixin):
def process_exception(self, request, exception):
if not isinstance(exception, (PermissionDenied, Http404)):
# Don't log non critical exceptions

View File

@@ -4,9 +4,10 @@ import pytz
from django.conf import settings
from django.utils import timezone
from django.utils.deprecation import MiddlewareMixin
class TimezoneMiddleware(object):
class TimezoneMiddleware(MiddlewareMixin):
def process_request(self, request):
if hasattr(request, 'session'):
tzname = request.session.get(settings.TIMEZONE_SESSION_KEY)

View File

@@ -125,7 +125,7 @@ INSTALLED_APPS = (
'drf_yasg',
)
MIDDLEWARE_CLASSES = (
MIDDLEWARE = (
'common.middleware.error_logging.ErrorLoggingMiddleware',
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
@@ -144,17 +144,17 @@ MIDDLEWARE_CLASSES = (
ROOT_URLCONF = 'mayan.urls'
TEMPLATES = [
TEMPLATES = (
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'OPTIONS': {
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'loaders': [
'django.template.loaders.filesystem.Loader',
@@ -162,7 +162,7 @@ TEMPLATES = [
]
},
},
]
)
WSGI_APPLICATION = 'mayan.wsgi.application'