From d775089ad63f271679b609828c0cdcf6b354d715 Mon Sep 17 00:00:00 2001 From: Dominic DiTaranto Date: Tue, 29 Oct 2024 12:04:25 -0400 Subject: password change --- korabo/urls.py | 2 ++ web/templates/base.html | 1 + web/templates/change-password/change_password.html | 12 +++++++++++ .../change-password/password_change_done.html | 7 +++++++ web/views.py | 24 +++++++++++++++++++--- 5 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 web/templates/change-password/change_password.html create mode 100644 web/templates/change-password/password_change_done.html diff --git a/korabo/urls.py b/korabo/urls.py index fbbfded..dfa6079 100644 --- a/korabo/urls.py +++ b/korabo/urls.py @@ -23,4 +23,6 @@ urlpatterns = [ path('admin/', admin.site.urls), path("", views.index, name="index"), path("event/", views.event, name="event"), + path('change_password/', views.change_password, name='change_password'), + path('password_change_done/', views.password_change_done, name='password_change_done') ] diff --git a/web/templates/base.html b/web/templates/base.html index d6ba2da..b5bc4a3 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -19,6 +19,7 @@
home | + change password | logout
diff --git a/web/templates/change-password/change_password.html b/web/templates/change-password/change_password.html new file mode 100644 index 0000000..d29c901 --- /dev/null +++ b/web/templates/change-password/change_password.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block title %}Change Password{% endblock %} + +{% block content %} +

Change Password

+
+ {% csrf_token %} + {{ form.as_p }} + +
+{% endblock %} \ No newline at end of file diff --git a/web/templates/change-password/password_change_done.html b/web/templates/change-password/password_change_done.html new file mode 100644 index 0000000..d173329 --- /dev/null +++ b/web/templates/change-password/password_change_done.html @@ -0,0 +1,7 @@ +{% extends "base.html" %} + +{% block title %}Change Password{% endblock %} + +{% block content %} +Success! +{% endblock %} \ No newline at end of file diff --git a/web/views.py b/web/views.py index cc537c4..0009739 100644 --- a/web/views.py +++ b/web/views.py @@ -1,8 +1,11 @@ -from django.shortcuts import render -from web.models import Event, Availability -from django.shortcuts import get_object_or_404, redirect from datetime import timedelta +from django.contrib.auth import update_session_auth_hash from django.contrib.auth.decorators import login_required +from django.contrib.auth.forms import PasswordChangeForm +from django.contrib.auth.views import PasswordChangeView +from django.shortcuts import get_object_or_404, redirect, render +from django.urls import reverse_lazy +from web.models import Event, Availability @login_required() @@ -27,6 +30,21 @@ def index(request): return render(request, "index.html", context) +def change_password(request): + if request.method == 'POST': + form = PasswordChangeForm(request.user, request.POST) + if form.is_valid(): + user = form.save() + update_session_auth_hash(request, user) + return redirect('password_change_done') + else: + form = PasswordChangeForm(request.user) + return render(request, 'change-password/change_password.html', {'form': form}) + +def password_change_done(request): + return render(request, 'change-password/password_change_done.html') + + @login_required() def event(request, event_id): -- cgit v1.2.3-70-g09d2