1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from django.contrib import messages
- from django.shortcuts import redirect, render
- from django.utils.translation import gettext as _
- from django.views.decorators.cache import never_cache
- from django.views.decorators.csrf import csrf_protect
- from django.views.decorators.debug import sensitive_post_parameters
- from .. import auth
- from ...users.forms.auth import AdminAuthenticationForm
- @sensitive_post_parameters()
- @csrf_protect
- @never_cache
- def login(request):
- if request.admin_namespace == "misago:admin":
- target = "misago"
- elif request.admin_namespace == "admin":
- target = "django"
- else:
- target = "unknown"
- form = AdminAuthenticationForm(request)
- if request.method == "POST":
- form = AdminAuthenticationForm(request, data=request.POST)
- if form.is_valid():
- auth.login(request, form.user_cache)
- return redirect("%s:index" % request.admin_namespace)
- return render(request, "misago/admin/login.html", {"form": form, "target": target})
- @csrf_protect
- @never_cache
- def logout(request):
- if request.method == "POST":
- auth.remove_admin_authorization(request)
- messages.info(request, _("Your admin session has been closed."))
- return redirect("misago:index")
- return redirect("misago:admin:index")
|