summaryrefslogtreecommitdiffstats
path: root/forms.py
diff options
context:
space:
mode:
authorMarian Sigler <m@qjym.de>2012-09-29 17:55:14 +0200
committerMarian Sigler <m@qjym.de>2012-09-29 17:56:14 +0200
commit2f5998a079e2a4f882c1ea3c1a3ceebca404e3a8 (patch)
treebb9326d5404e383cb6cb6ed285966356f273912c /forms.py
parent0afa6b651dfb326481d8b0d0fd5d599384889170 (diff)
downloadweb-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.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/forms.py b/forms.py
index 53f70ff..84ccb29 100644
--- a/forms.py
+++ b/forms.py
@@ -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)