core: use class-based views for auth

This commit is contained in:
Jérôme Lebleu
2020-01-13 14:24:25 +01:00
parent 2241b1a3a2
commit 40e6dc838f
5 changed files with 19 additions and 16 deletions
+1 -2
View File
@@ -318,8 +318,7 @@ class DomainTestCase(ModoTestCase):
domain = Domain.objects.get(name="test2.com")
url = reverse("admin:domain_detail", args=[domain.pk])
response = self.client.get(url)
self.assertEqual(response.status_code, 302)
self.assertTrue(response.url.startswith("/accounts/login"))
self.assertEqual(response.status_code, 403)
def test_domain_quota_list_view(self):
"""Test quota list view."""
+1 -1
View File
@@ -122,7 +122,7 @@ class DashboardTestCase(ModoTestCase):
self.client.logout()
self.client.login(username=self.user.username, password="toto")
response = self.client.get(url)
self.assertEqual(response.status_code, 302)
self.assertEqual(response.status_code, 403)
def test_custom_news(self):
"""Check that custom news are displayed."""
+2 -2
View File
@@ -4,13 +4,14 @@ from .admin import (
check_top_notifications, information, logs, logs_page, parameters,
viewsettings
)
from .auth import dologin, dologout, password_reset
from .auth import PasswordResetView, dologin, dologout
from .base import RootDispatchView
from .dashboard import DashboardView
from .user import api_access, index, preferences, profile
__all__ = [
"DashboardView",
"PasswordResetView",
"RootDispatchView",
"api_access",
"check_top_notifications",
@@ -21,7 +22,6 @@ __all__ = [
"logs",
"logs_page",
"parameters",
"password_reset",
"preferences",
"profile",
"viewsettings",
+9 -7
View File
@@ -115,11 +115,13 @@ def dologout(request):
return HttpResponseRedirect(reverse("core:login"))
def password_reset(request, **kwargs):
class PasswordResetView(auth_views.PasswordResetView):
"""Custom view to override form."""
kwargs.update({
"from_email": (
request.localconfig.parameters.get_value("sender_address")),
"password_reset_form": forms.PasswordResetForm
})
return auth_views.password_reset(request, **kwargs)
form_class = forms.PasswordResetForm
def setup(self, request, *args, **kwargs):
super().setup(request, *args, **kwargs)
self.from_email = request.localconfig.parameters.get_value(
"sender_address"
)
+6 -4
View File
@@ -30,13 +30,15 @@ urlpatterns = [
path('user/forward/', user_views.forward, name="user_forward"),
path('accounts/password_reset/', core_views.password_reset,
path('accounts/password_reset/', core_views.PasswordResetView.as_view(),
name="password_reset"),
path('accounts/password_reset/done/', auth_views.password_reset_done,
path('accounts/password_reset/done/',
auth_views.PasswordResetDoneView.as_view(),
name="password_reset_done"),
path('reset/<uidb64>/<token>/', auth_views.password_reset_confirm,
path('reset/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(),
name="password_reset_confirm"),
path('reset/done/', auth_views.password_reset_complete,
path('reset/done/', auth_views.PasswordResetCompleteView.as_view(),
name="password_reset_complete"),
]