From 7216ec0a7fe4051611990c237652eaaa50e26e42 Mon Sep 17 00:00:00 2001 From: Marian Sigler Date: Wed, 26 Sep 2012 02:37:56 +0200 Subject: start with form and template changes for service password management --- app.py | 68 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'app.py') diff --git a/app.py b/app.py index 43f6ef0..8eb8ece 100644 --- a/app.py +++ b/app.py @@ -9,7 +9,6 @@ import os from copy import deepcopy from flask import flash, Flask, g, redirect, request, session, url_for from utils import * -from forms import RegisterForm, RegisterCompleteForm, LoginForm, SettingsForm app = Flask(__name__) @@ -40,7 +39,7 @@ def index(): form = LoginForm(request.form) if request.method == 'POST' and form.validate(): if login_user(form.username.data, form.password.data): - flash(u'Erfolgreich eingeloggt (als %s)' % g.user.uid, 'success') + flash(u'Erfolgreich eingeloggt', 'success') return redirect(url_for('settings')) else: flash(u'Ungültiger Benutzername und/oder Passwort', 'error') @@ -114,33 +113,41 @@ def settings(): if request.method == 'POST' and form.validate(): changed = False - if form.mail.data and form.mail.data != g.user.mail: - confirm_token = make_confirmation('change_mail', (g.user.uid, form.mail.data)) - confirm_link = url_for('change_mail', token=confirm_token, _external=True) + if request.form.get('submit_main'): + if form.mail.data and form.mail.data != g.user.mail: + confirm_token = make_confirmation('change_mail', (g.user.uid, form.mail.data)) + confirm_link = url_for('change_mail', token=confirm_token, _external=True) - body = render_template('mail/change_mail.txt', username=g.user.uid, - mail=form.mail.data, link=confirm_link) + body = render_template('mail/change_mail.txt', username=g.user.uid, + mail=form.mail.data, link=confirm_link) - send_mail(form.mail.data, u'E-Mail-Adresse bestätigen', body, - sender=app.config.get('MAIL_CONFIRM_SENDER')) + send_mail(form.mail.data, u'E-Mail-Adresse bestätigen', body, + sender=app.config.get('MAIL_CONFIRM_SENDER')) - flash(u'Es wurde eine E-Mail an die angegebene Adresse geschickt, ' - u'um diese zu überprüfen. Bitte folge den Anweisungen in der ' - u'E-Mail.') - changed = True + flash(u'Es wurde eine E-Mail an die angegebene Adresse geschickt, ' + u'um diese zu überprüfen. Bitte folge den Anweisungen in der ' + u'E-Mail.') + changed = True - if form.password.data: - g.user.change_password(form.password.data) - g.ldap.update(g.user) - session['password'] = encrypt_password(form.password.data) + if form.password.data: + g.user.change_password(form.password.data, session['password']) + session['password'] = encrypt_password(form.password.data) - flash(u'Passwort geändert', 'success') - changed = True + flash(u'Passwort geändert', 'success') + changed = True - if changed: - return redirect(url_for('settings')) - else: - flash(u'Nichts geändert') + for service in app.all_services: + field = form.get_servicepassword(service.id) + if field.data: + changed = True + g.user.change_password(field.data, session['password'], service.id) + + + if changed: + g.ldap.update(g.user) + return redirect(url_for('settings')) + else: + flash(u'Nichts geändert.') services = deepcopy(app.all_services) @@ -178,16 +185,9 @@ def debug(): raise Exception() -if __name__ == '__main__': - app.run(debug=True) - +# we need the app to exist before initializing the forms +from forms import RegisterForm, RegisterCompleteForm, LoginForm, SettingsForm -# wir brauchen: -# registrieren -# login -# passwort ändern (master-passwort, einzelne) -# email ändern -# später: -# account löschen -# openid-provider (ggf mehr Details: Realname, Zeitzone, ...) +if __name__ == '__main__': + app.run(debug=True) -- cgit v1.2.3-1-g7c22