From 6663c6355854e5d332458127557b5dd2abc20efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 8 Apr 2020 21:39:36 +0200 Subject: [PATCH] misc: change admin to use front login/logout views (#41488) --- fargo/fargo/admin.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/fargo/fargo/admin.py b/fargo/fargo/admin.py index e1a72d7..26b2ef5 100644 --- a/fargo/fargo/admin.py +++ b/fargo/fargo/admin.py @@ -16,11 +16,42 @@ from django.contrib import admin from django.contrib.auth import get_user_model +from django.shortcuts import redirect +from django.urls import reverse +from django.urls.exceptions import NoReverseMatch from django.utils.translation import ugettext_lazy as _ +from django.views.decorators.cache import never_cache from . import models +@never_cache +def login(request, *args, **kwargs): + try: + auth_login_url = reverse('auth_login') + except NoReverseMatch: + return admin.site.orig_login(request, *args, **kwargs) + auth_login_url += '?%s' % request.GET.urlencode() + return redirect(auth_login_url) + + +@never_cache +def logout(request, *args, **kwargs): + try: + return redirect(reverse('auth_logout')) + except NoReverseMatch: + return admin.site.orig_logout(request, *args, **kwargs) + + +if admin.site.login != login: + admin.site.orig_login = admin.site.login + admin.site.login = login + +if admin.site.logout != logout: + admin.site.orig_logout = admin.site.logout + admin.site.logout = logout + + class UserDocumentAdmin(admin.ModelAdmin): list_display = ['user', 'filename', 'thumbnail', 'created', 'origin'] fields = ['id', 'user', 'filename', 'thumbnail', 'created', 'origin']