summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--korabo/urls.py2
-rw-r--r--web/templates/base.html1
-rw-r--r--web/templates/change-password/change_password.html12
-rw-r--r--web/templates/change-password/password_change_done.html7
-rw-r--r--web/views.py24
5 files changed, 43 insertions, 3 deletions
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/<int:event_id>", 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 @@
</div>
<div style="float:right;">
<a href="{% url 'index' %}">home</a> |
+ <a href="{% url 'change_password' %}">change password</a> |
<a href="{% url 'logout' %}">logout</a>
</div>
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 %}
+ <h2>Change Password</h2>
+ <form method="post">
+ {% csrf_token %}
+ {{ form.as_p }}
+ <button type="submit">Change Password</button>
+ </form>
+{% 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):