misc: use native admin login/logout views if public URLs are not loaded (#35678)
This commit is contained in:
parent
9627292845
commit
d2a2dd6c91
|
@ -17,19 +17,31 @@
|
|||
from django.contrib import admin
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.shortcuts import redirect
|
||||
from django.urls.exceptions import NoReverseMatch
|
||||
from django.views.decorators.cache import never_cache
|
||||
|
||||
|
||||
@never_cache
|
||||
def login(request, extra_context=None):
|
||||
auth_login_url = reverse('auth_login')
|
||||
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)
|
||||
|
||||
admin.site.login = login
|
||||
|
||||
@never_cache
|
||||
def logout(request, extra_context=None):
|
||||
return redirect(reverse('auth_logout'))
|
||||
def logout(request, *args, **kwargs):
|
||||
try:
|
||||
return redirect(reverse('auth_logout'))
|
||||
except NoReverseMatch:
|
||||
return admin.site.orig_logout(request, *args, **kwargs)
|
||||
|
||||
admin.site.logout = logout
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue