summaryrefslogtreecommitdiffstats
path: root/users/views/auth.py
diff options
context:
space:
mode:
authorAndrew Godwin2022-11-17 19:36:25 -0700
committerAndrew Godwin2022-11-17 19:36:25 -0700
commitadf2449d373bcd07e2b0ce557beeb1f49d1894e4 (patch)
treef9178fded8a38d02546b098ebb71b3797eb18964 /users/views/auth.py
parent6adfdbabe0d44c17f32abc9d48a6e252e2a0792e (diff)
downloadtakahe-adf2449d373bcd07e2b0ce557beeb1f49d1894e4.tar.gz
takahe-adf2449d373bcd07e2b0ce557beeb1f49d1894e4.tar.bz2
takahe-adf2449d373bcd07e2b0ce557beeb1f49d1894e4.zip
Add the user settings page too
Diffstat (limited to 'users/views/auth.py')
-rw-r--r--users/views/auth.py35
1 files changed, 32 insertions, 3 deletions
diff --git a/users/views/auth.py b/users/views/auth.py
index 7d4040b..7f51d45 100644
--- a/users/views/auth.py
+++ b/users/views/auth.py
@@ -44,9 +44,38 @@ class Signup(FormView):
)
-class Reset(FormView):
+class TriggerReset(FormView):
- template_name = "auth/reset.html"
+ template_name = "auth/trigger_reset.html"
+
+ class form_class(forms.Form):
+
+ email = forms.EmailField(
+ help_text="We will send a reset link to this email",
+ )
+
+ def clean_email(self):
+ email = self.cleaned_data.get("email").lower()
+ if not email:
+ return
+ if not User.objects.filter(email=email).exists():
+ raise forms.ValidationError("This email does not have an account")
+ return email
+
+ def form_valid(self, form):
+ PasswordReset.create_for_user(
+ User.objects.get(email=form.cleaned_data["email"])
+ )
+ return render(
+ self.request,
+ "auth/trigger_reset_success.html",
+ {"email": form.cleaned_data["email"]},
+ )
+
+
+class PerformReset(FormView):
+
+ template_name = "auth/perform_reset.html"
class form_class(forms.Form):
@@ -81,7 +110,7 @@ class Reset(FormView):
self.reset.delete()
return render(
self.request,
- "auth/reset_success.html",
+ "auth/perform_reset_success.html",
{"email": self.reset.user.email},
)