from django.http import HttpResponseRedirect from django.urls import reverse_lazy from django.contrib.auth import views as auth_views from django.contrib.auth import login as auth_login from various.autentizace.forms import LoginForm class LoginView(auth_views.LoginView): # Jen vezmeme vestavěný a dáme mu vhodný template a přesměrovací URL template_name = 'autentizace/login.html' authentication_form = LoginForm def form_valid(self, form): """ Okopírováno z django/contrib/auth/views.py s přidáním nekonečného přihlášení """ auth_login(self.request, form.get_user()) if form.cleaned_data["disable_logout"]: form.request.session.set_expiry(2**32) # infinity (asi 100 let)... return HttpResponseRedirect(self.get_success_url()) class LogoutView(auth_views.LogoutView): # Jen vezmeme vestavěný a dáme mu vhodný template a přesměrovací URL template_name = 'autentizace/logout.html' # Pavel: Vůbec nevím, proč to s _lazy funguje, ale bez toho to bylo rozbité. next_page = reverse_lazy('titulni_strana') # Nejsem si jistý, který view co dostává, tak zahazuji všechny POSTy class PasswordResetView(auth_views.PasswordResetView): """ Chci resetovat heslo. """ template_name = 'autentizace/reset_hesla.html' success_url = reverse_lazy('reset_password_done') from_email = 'login@mam.mff.cuni.cz' email_template_name = 'autentizace/password_reset_email.html' subject_template_name = 'autentizace/password_reset_subject.txt' class PasswordResetDoneView(auth_views.PasswordResetDoneView): """ Poslali jsme e-mail (pokud bylo kam)). """ template_name = 'autentizace/reset_poslan.html' class PasswordResetConfirmView(auth_views.PasswordResetConfirmView): """ Vymysli si heslo. """ template_name = 'autentizace/nove_heslo.html' success_url = reverse_lazy('reset_password_complete') class PasswordResetCompleteView(auth_views.PasswordResetCompleteView): """ Heslo se asi změnilo.""" template_name = 'autentizace/nove_nastaveno.html' class PasswordChangeView(auth_views.PasswordChangeView): # template_name = 'seminar/password_change.html' success_url = reverse_lazy('titulni_strana')