Browse Source

Password changing

raylu 14 years ago
parent
commit
4d5a1f4ed6

+ 3 - 0
pyc/grader/views.py

@@ -9,6 +9,9 @@ def index(request):
 			'authenticated' : request.user.is_authenticated(),
 			})
 
+def password_changed(request):
+	return render_to_response('password_changed.html')
+
 def lab(request, lab_id):
 	lab = Lab.objects.get(pk=lab_id)
 	submissions = lab.submission_set.filter(user__is_staff=False).order_by('-grade', '-time')

+ 2 - 0
pyc/templates/index.html

@@ -19,6 +19,8 @@ If you are interested, please contact raylu.
 
 <p>
 {% if authenticated %}
+	<a href="{% url django.contrib.auth.views.password_change %}">Change Password</a>
+	<br />
 	<a href="{% url django.contrib.auth.views.logout %}">Logout</a>
 {% else %}
 	<a href="{% url django.contrib.auth.views.login %}">Login</a>

+ 2 - 2
pyc/templates/login.html

@@ -7,7 +7,6 @@
 {% endif %}
 
 <form method="post" action="{% url 'django.contrib.auth.views.login' %}">
-{% csrf_token %}
 <table>
 	<tr>
 	<td style="text-align: right">{{ form.username.label_tag }}</td>
@@ -18,8 +17,9 @@
 	<td>{{ form.password }}</td>
 	</tr>
 </table>
+{% csrf_token %}
 
-<input type="submit" value="login" />
+<input type="submit" value="Login" />
 <input type="hidden" name="next" value="{{ next }}" />
 </form>
 {% endblock %}

+ 29 - 0
pyc/templates/password.html

@@ -0,0 +1,29 @@
+{% extends 'base.html' %}
+{% load url from future %}
+
+{% block body %}
+{% if form.errors %}
+<p>An error occured.</p>
+{% endif %}
+
+<form method="post" action="{% url 'django.contrib.auth.views.password_change' %}">
+{% csrf_token %}
+<table>
+	<tr>
+	<td style="text-align: right">{{ form.old_password.label_tag }}</td>
+	<td>{{ form.old_password }}</td>
+	</tr>
+	<tr>
+	<td style="text-align: right">{{ form.new_password1.label_tag }}</td>
+	<td>{{ form.new_password1 }}</td>
+	</tr>
+	<tr>
+	<td style="text-align: right">{{ form.new_password2.label_tag }}</td>
+	<td>{{ form.new_password2 }}</td>
+	</tr>
+</table>
+
+<input type="submit" value="Change" />
+<input type="hidden" name="next" value="{{ next }}" />
+</form>
+{% endblock %}

+ 9 - 0
pyc/templates/password_changed.html

@@ -0,0 +1,9 @@
+{% extends 'base.html' %}
+{% load url from future %}
+
+{% block body %}
+Password successfully changed.
+<p>
+<a href="/">Home</a>
+</p>
+{% endblock %}

+ 2 - 0
pyc/urls.py

@@ -10,6 +10,8 @@ urlpatterns = patterns('',
 
 	url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
 	url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
+	url(r'^password/$', 'django.contrib.auth.views.password_change', {'template_name': 'password.html', 'post_change_redirect': '/password_changed'}),
+	url(r'^password_changed/$', 'grader.views.password_changed'),
 
 	# Uncomment the admin/doc line below to enable admin documentation:
 	# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),