From 709fb4be3d1ff9c0c08b95d6ea7a8d0657e94ed3 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sat, 19 May 2018 10:05:04 +0200 Subject: [PATCH] Sessions only for admin/. --- paste/middleware.py | 16 ++++++++++++++++ paste/views.py | 3 +-- webtools/settings.py | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 paste/middleware.py diff --git a/paste/middleware.py b/paste/middleware.py new file mode 100644 index 0000000..a89d3cd --- /dev/null +++ b/paste/middleware.py @@ -0,0 +1,16 @@ +from django.contrib.sessions.middleware import SessionMiddleware as DjangoSessionMiddleware + + +class SessionMiddleware(DjangoSessionMiddleware): + def process_request(self, request): + if 'admin' in request.path: + session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME) + request.session = self.SessionStore(session_key) + else: + request.session = {} + + def process_response(self, request, response): + if 'admin' in request.path: + return super().process_response(request, response) + else: + return response diff --git a/paste/views.py b/paste/views.py index 3b6be91..f14d8a9 100644 --- a/paste/views.py +++ b/paste/views.py @@ -1,7 +1,7 @@ from . import renderers from django.urls import reverse from django.shortcuts import render, get_object_or_404 -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, HttpResponse from django.views.decorators.csrf import csrf_exempt from .models import Paste, Language from .forms import PasteForm @@ -14,7 +14,6 @@ def index(request): """Displays form.""" data = {'menu': 'index', 'max_characters': settings.PASTE['max_characters']} - # if request.method == 'PUT': if request.method == 'POST': paste = Paste(slug=random_id(Paste)) if request.FILES: diff --git a/webtools/settings.py b/webtools/settings.py index 90a58fc..0ce86ee 100644 --- a/webtools/settings.py +++ b/webtools/settings.py @@ -74,7 +74,7 @@ TEMPLATES = [ ] MIDDLEWARE = [ - 'django.contrib.sessions.middleware.SessionMiddleware', + 'paste.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.common.CommonMiddleware',