Merge branch 'dev/django2.1-middleware'

This commit is contained in:
Santiago L 2021-05-11 14:20:51 +02:00
commit ed9bfc0eb7
4 changed files with 45 additions and 27 deletions

View File

@ -25,6 +25,7 @@ SECRET_KEY = '{{ secret_key }}'
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True DEBUG = True
ALLOWED_HOSTS = []
# Application definition # Application definition
@ -84,6 +85,21 @@ INSTALLED_APPS = [
] ]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'orchestra.core.caches.RequestCacheMiddleware',
# also handles transations, ATOMIC_REQUESTS does not wrap middlewares
'orchestra.contrib.orchestration.middlewares.OperationsMiddleware',
]
ROOT_URLCONF = '{{ project_name }}.urls' ROOT_URLCONF = '{{ project_name }}.urls'
TEMPLATES = [ TEMPLATES = [
@ -127,6 +143,24 @@ DATABASES = {
} }
# Password validation
# https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization # Internationalization
# https://docs.djangoproject.com/en/{{ docs_version }}/topics/i18n/ # https://docs.djangoproject.com/en/{{ docs_version }}/topics/i18n/
@ -168,22 +202,6 @@ LOCALE_PATHS = (
ORCHESTRA_SITE_NAME = '{{ project_name }}' ORCHESTRA_SITE_NAME = '{{ project_name }}'
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
# 'django.middleware.locale.LocaleMiddleware'
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'orchestra.core.caches.RequestCacheMiddleware',
# also handles transations, ATOMIC_REQUESTS does not wrap middlewares
'orchestra.contrib.orchestration.middlewares.OperationsMiddleware',
)
AUTH_USER_MODEL = 'accounts.Account' AUTH_USER_MODEL = 'accounts.Account'

View File

@ -1,15 +1,15 @@
from threading import local from threading import local
from django.contrib.admin.models import LogEntry from django.contrib.admin.models import LogEntry
from django.urls import resolve
from django.db import transaction from django.db import transaction
from django.db.models.signals import pre_delete, post_save, m2m_changed from django.db.models.signals import m2m_changed, post_save, pre_delete
from django.dispatch import receiver from django.dispatch import receiver
from django.http.response import HttpResponseServerError from django.http.response import HttpResponseServerError
from django.urls import resolve
from django.utils.deprecation import MiddlewareMixin
from orchestra.utils.python import OrderedSet from orchestra.utils.python import OrderedSet
from . import manager, Operation from . import Operation, manager
from .helpers import message_user from .helpers import message_user
from .models import BackendLog, BackendOperation from .models import BackendLog, BackendOperation
@ -35,7 +35,7 @@ def m2m_collector(sender, *args, **kwargs):
OperationsMiddleware.collect(Operation.SAVE, **kwargs) OperationsMiddleware.collect(Operation.SAVE, **kwargs)
class OperationsMiddleware(object): class OperationsMiddleware(MiddlewareMixin):
""" """
Stores all the operations derived from save and delete signals and executes them Stores all the operations derived from save and delete signals and executes them
at the end of the request/response cycle at the end of the request/response cycle

View File

@ -2,7 +2,7 @@ from threading import currentThread
from django.core.cache.backends.dummy import DummyCache from django.core.cache.backends.dummy import DummyCache
from django.core.cache.backends.locmem import LocMemCache from django.core.cache.backends.locmem import LocMemCache
from django.utils.deprecation import MiddlewareMixin
_request_cache = {} _request_cache = {}
@ -25,7 +25,7 @@ def get_request_cache():
return DummyCache('dummy', {}) return DummyCache('dummy', {})
class RequestCacheMiddleware(object): class RequestCacheMiddleware(MiddlewareMixin):
def process_request(self, request): def process_request(self, request):
current_thread = currentThread() current_thread = currentThread()
cache = _request_cache.get(current_thread, RequestCache()) cache = _request_cache.get(current_thread, RequestCache())

View File

@ -6,7 +6,7 @@ django-celery==3.2.1
celery==3.1.23 celery==3.1.23
kombu==3.0.35 kombu==3.0.35
billiard==3.3.0.23 billiard==3.3.0.23
Markdown==2.4 Markdown==3.3.4
djangorestframework==3.10.3 djangorestframework==3.10.3
ecdsa==0.11 ecdsa==0.11
Pygments==1.6 Pygments==1.6