forked from CGM_Public/pretix_original
Django 1.10: New-style middlewares
This commit is contained in:
@@ -6,6 +6,7 @@ from django.core.urlresolvers import get_script_prefix
|
|||||||
from django.http import HttpRequest, HttpResponse
|
from django.http import HttpRequest, HttpResponse
|
||||||
from django.utils import timezone, translation
|
from django.utils import timezone, translation
|
||||||
from django.utils.cache import patch_vary_headers
|
from django.utils.cache import patch_vary_headers
|
||||||
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
from django.utils.translation import LANGUAGE_SESSION_KEY
|
from django.utils.translation import LANGUAGE_SESSION_KEY
|
||||||
from django.utils.translation.trans_real import (
|
from django.utils.translation.trans_real import (
|
||||||
check_for_language, get_supported_language_variant, language_code_re,
|
check_for_language, get_supported_language_variant, language_code_re,
|
||||||
@@ -15,7 +16,7 @@ from django.utils.translation.trans_real import (
|
|||||||
_supported = None
|
_supported = None
|
||||||
|
|
||||||
|
|
||||||
class LocaleMiddleware:
|
class LocaleMiddleware(MiddlewareMixin):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
This middleware sets the correct locale and timezone
|
This middleware sets the correct locale and timezone
|
||||||
@@ -134,7 +135,7 @@ def get_language_from_request(request: HttpRequest) -> str:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class SecurityMiddleware:
|
class SecurityMiddleware(MiddlewareMixin):
|
||||||
|
|
||||||
def _parse_csp(self, header):
|
def _parse_csp(self, header):
|
||||||
h = {}
|
h = {}
|
||||||
|
|||||||
@@ -5,13 +5,14 @@ from django.contrib.auth import REDIRECT_FIELD_NAME
|
|||||||
from django.core.urlresolvers import get_script_prefix, resolve
|
from django.core.urlresolvers import get_script_prefix, resolve
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import redirect, resolve_url
|
from django.shortcuts import redirect, resolve_url
|
||||||
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
from django.utils.encoding import force_str
|
from django.utils.encoding import force_str
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from pretix.base.models import Event, EventPermission, Organizer
|
from pretix.base.models import Event, EventPermission, Organizer
|
||||||
|
|
||||||
|
|
||||||
class PermissionMiddleware:
|
class PermissionMiddleware(MiddlewareMixin):
|
||||||
"""
|
"""
|
||||||
This middleware enforces all requests to the control app to require login.
|
This middleware enforces all requests to the control app to require login.
|
||||||
Additionally, it enforces all requests to "control:event." URLs
|
Additionally, it enforces all requests to "control:event." URLs
|
||||||
|
|||||||
6
src/pretix/helpers/debug.py
Normal file
6
src/pretix/helpers/debug.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from debug_toolbar.middleware import DebugToolbarMiddleware
|
||||||
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
|
|
||||||
|
|
||||||
|
class DebugMiddlewareCompatibilityShim(MiddlewareMixin, DebugToolbarMiddleware):
|
||||||
|
pass
|
||||||
@@ -9,6 +9,7 @@ from django.core.urlresolvers import set_urlconf
|
|||||||
from django.http.request import split_domain_port
|
from django.http.request import split_domain_port
|
||||||
from django.middleware.csrf import CsrfViewMiddleware as BaseCsrfMiddleware
|
from django.middleware.csrf import CsrfViewMiddleware as BaseCsrfMiddleware
|
||||||
from django.utils.cache import patch_vary_headers
|
from django.utils.cache import patch_vary_headers
|
||||||
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
from django.utils.http import cookie_date
|
from django.utils.http import cookie_date
|
||||||
|
|
||||||
from pretix.multidomain.models import KnownDomain
|
from pretix.multidomain.models import KnownDomain
|
||||||
@@ -16,7 +17,7 @@ from pretix.multidomain.models import KnownDomain
|
|||||||
LOCAL_HOST_NAMES = ('testserver', 'localhost')
|
LOCAL_HOST_NAMES = ('testserver', 'localhost')
|
||||||
|
|
||||||
|
|
||||||
class MultiDomainMiddleware:
|
class MultiDomainMiddleware(MiddlewareMixin):
|
||||||
def process_request(self, request):
|
def process_request(self, request):
|
||||||
# We try three options, in order of decreasing preference.
|
# We try three options, in order of decreasing preference.
|
||||||
if settings.USE_X_FORWARDED_HOST and ('HTTP_X_FORWARDED_HOST' in request.META):
|
if settings.USE_X_FORWARDED_HOST and ('HTTP_X_FORWARDED_HOST' in request.META):
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
from django.core.urlresolvers import resolve
|
from django.core.urlresolvers import resolve
|
||||||
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
|
|
||||||
from pretix.presale.signals import process_response
|
from pretix.presale.signals import process_response
|
||||||
|
|
||||||
from .utils import _detect_event
|
from .utils import _detect_event
|
||||||
|
|
||||||
|
|
||||||
class EventMiddleware:
|
class EventMiddleware(MiddlewareMixin):
|
||||||
def process_request(self, request):
|
def process_request(self, request):
|
||||||
url = resolve(request.path_info)
|
url = resolve(request.path_info)
|
||||||
request._namespace = url.namespace
|
request._namespace = url.namespace
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ CORE_MODULES = {
|
|||||||
("pretix", "control")
|
("pretix", "control")
|
||||||
}
|
}
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = [
|
MIDDLEWARE = [
|
||||||
'pretix.multidomain.middlewares.MultiDomainMiddleware',
|
'pretix.multidomain.middlewares.MultiDomainMiddleware',
|
||||||
'pretix.multidomain.middlewares.SessionMiddleware',
|
'pretix.multidomain.middlewares.SessionMiddleware',
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
@@ -212,7 +212,7 @@ try:
|
|||||||
import debug_toolbar # noqa
|
import debug_toolbar # noqa
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
INSTALLED_APPS.append('debug_toolbar.apps.DebugToolbarConfig')
|
INSTALLED_APPS.append('debug_toolbar.apps.DebugToolbarConfig')
|
||||||
MIDDLEWARE_CLASSES.append('debug_toolbar.middleware.DebugToolbarMiddleware')
|
MIDDLEWARE.append('pretix.helpers.debug.DebugMiddlewareCompatibilityShim')
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
django-debug-toolbar==1.4
|
django-debug-toolbar==1.5
|
||||||
sqlparse==0.1.19 # not yet supported by django-debug-toolbar 1.4
|
sqlparse==0.1.19 # not yet supported by django-debug-toolbar 1.4
|
||||||
# Testing requirements
|
# Testing requirements
|
||||||
pep8==1.5.7 # exact requirement by flake8 2.4.0
|
pep8==1.5.7 # exact requirement by flake8 2.4.0
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ python-dateutil
|
|||||||
pytz
|
pytz
|
||||||
django-bootstrap3>=6.2,<6.3
|
django-bootstrap3>=6.2,<6.3
|
||||||
git+https://github.com/pretix/django-formset-js.git@master#egg=django-formset-js
|
git+https://github.com/pretix/django-formset-js.git@master#egg=django-formset-js
|
||||||
django-compressor==2.0
|
django-compressor==2.1
|
||||||
reportlab>=3.2,<3.3
|
reportlab>=3.2,<3.3
|
||||||
git+https://github.com/pretix/PyPDF2.git@pretix#egg=PyPDF2
|
git+https://github.com/pretix/PyPDF2.git@pretix#egg=PyPDF2
|
||||||
easy-thumbnails>=2.2,<3
|
easy-thumbnails>=2.2,<3
|
||||||
|
|||||||
Reference in New Issue
Block a user