diff options
author | Andrew Godwin | 2022-11-17 19:36:25 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-11-17 19:36:25 -0700 |
commit | adf2449d373bcd07e2b0ce557beeb1f49d1894e4 (patch) | |
tree | f9178fded8a38d02546b098ebb71b3797eb18964 /users/views/auth.py | |
parent | 6adfdbabe0d44c17f32abc9d48a6e252e2a0792e (diff) | |
download | takahe-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.py | 35 |
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}, ) |