diff options
author | Marian Sigler <m@qjym.de> | 2012-09-29 17:55:14 +0200 |
---|---|---|
committer | Marian Sigler <m@qjym.de> | 2012-09-29 17:56:14 +0200 |
commit | 2f5998a079e2a4f882c1ea3c1a3ceebca404e3a8 (patch) | |
tree | bb9326d5404e383cb6cb6ed285966356f273912c /forms.py | |
parent | 0afa6b651dfb326481d8b0d0fd5d599384889170 (diff) | |
download | web-2f5998a079e2a4f882c1ea3c1a3ceebca404e3a8.tar.gz web-2f5998a079e2a4f882c1ea3c1a3ceebca404e3a8.tar.bz2 web-2f5998a079e2a4f882c1ea3c1a3ceebca404e3a8.zip |
Make it possible to enter an email address at lost_password.
That way users who forgot their username can find it out.
Diffstat (limited to 'forms.py')
-rw-r--r-- | forms.py | 27 |
1 files changed, 20 insertions, 7 deletions
@@ -45,13 +45,26 @@ class LoginForm(Form): class LostPasswordForm(Form): - username = username() + username_or_mail = TextField(u'Benutzername oder E-Mail') + + def validate_username_or_mail(form, field): + print 'validate %r %r' % (field, field.data) + if '@' not in field.data: + print 'validate username' + try: + form.user = g.ldap.get_by_uid(field.data) + print 'success, %r' % form.user + except NoSuchUserError: + raise ValidationError(u'Es gibt keinen Benutzer mit diesem Namen.') + else: + print 'validate mail' + try: + form.user = g.ldap.get_by_mail(field.data) + print 'success, %r' % form.user + except NoSuchUserError: + raise ValidationError(u'Es gibt keinen Benutzer mit dieser Adresse.') + - def validate_username(form, field): - try: - form.user = g.ldap.get_by_uid(field.data) - except NoSuchUserError: - raise ValidationError(u'Es gibt keinen Benutzer mit diesem Namen.') class SettingsForm(Form): @@ -64,7 +77,7 @@ class SettingsForm(Form): results = g.ldap.find_by_mail(field.data) for user in results: if user.uid != g.user.uid: - raise ValidationError(u'Diese E-Mail-Adresse wird schon von einem anderen account benutzt!') + raise ValidationError(u'Diese E-Mail-Adresse wird schon von einem anderen Account benutzt!') def get_servicepassword(self, service_id): return getattr(self, 'password_%s' % service_id) |