summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-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
4 files changed, 41 insertions, 3 deletions
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):