diff --git a/k4ever/main/templates/settings/settings.html b/k4ever/main/templates/settings/settings.html
index c4e24ef..805787e 100644
--- a/k4ever/main/templates/settings/settings.html
+++ b/k4ever/main/templates/settings/settings.html
@@ -3,7 +3,21 @@
{% block "content" %}
Passwort
- Da die meisten der Nutzer dieses Systems über den LDAP der Freitagsrunde laufen, kann man hier sein Passwort nicht ändern. Wenn du dein Passwort trotzdem ändern möchstest (und dieses System nicht über einen Freitagsrundenaccount benutzt), wende dich bitte an einen der Freitagsrunden-Admins. (lies: not implemented)
+
+ {% if form %}
+ {% if password_success %}
+ {{ password_success }}
+ {% endif %}
+
+ {% else %}
+ Da du dich nicht über Django authentifizierst (sondern z.B. über LDAP) kannst du dein Passwort hier nicht ändern.
+ {% endif %}
Pluginberechtigungen
diff --git a/k4ever/main/views.py b/k4ever/main/views.py
index f517c3a..2feb413 100644
--- a/k4ever/main/views.py
+++ b/k4ever/main/views.py
@@ -5,7 +5,7 @@ from django.contrib.auth.decorators import login_required
from django.db.models import Count
from django.http import HttpResponseRedirect
from main.models import Plugin, PluginPermission
-
+from django.contrib.auth.forms import PasswordChangeForm
from buyable.models import Purchase, Buyable, BuyableType
@login_required
@@ -62,12 +62,23 @@ def getPluginDict(request):
unallowed = Plugin.objects.exclude(pluginpermission__user=request.user)
perms = PluginPermission.objects.filter(user=request.user)
- return {'plugins': plugins, 'allowed': allowed, 'unallowed': unallowed, 'permissions': perms}
+ form = None
+ if request.user.has_usable_password():
+ form = PasswordChangeForm(request.user)
+
+ return {'plugins': plugins, 'allowed': allowed, 'unallowed': unallowed, 'permissions': perms, 'form': form}
@login_required
def settings(request):
""" Render settings page. """
- return render_to_response("settings/settings.html", getPluginDict(request), RequestContext(request))
+ pdict = getPluginDict(request)
+ if request.method == "POST":
+ form = PasswordChangeForm(request.user, data=request.POST)
+ if form.is_valid():
+ form.save()
+ pdict['password_success'] = "Es wurde ein neues Passwort gesetzt."
+ pdict['form'] = form
+ return render_to_response("settings/settings.html", pdict, RequestContext(request))
@login_required
def pluginPermission(request, method, pluginId):