diff options
Diffstat (limited to 'forms.py')
-rw-r--r-- | forms.py | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from account import SERVICES, NoSuchUserError -from flask import g +from flask import g, current_app, url_for, Markup from flask.ext.wtf import Form, validators, TextField, PasswordField,\ ValidationError from functools import partial @@ -15,6 +15,22 @@ class RegisterForm(Form): username = username() mail = TextField('E-Mail-Adresse', [validators.Email(), validators.Length(min=6, max=50)]) + def validate_username(form, field): + try: + g.ldap.get_by_uid(field.data) + except NoSuchUserError: + if current_app.username_blacklist: + if field.data.lower() in current_app.username_blacklist: + + raise ValidationError(Markup(u'Dieser Benutzername ist momentan nicht erlaubt. ' + u'<a href="%s">Weitere Informationen</a>' % url_for('about'))) + else: + print 'not in blacklist: %r' % field.data + else: + print 'no blacklist' + else: + raise ValidationError(u'Dieser Benutzername ist schon vergeben') + class RegisterCompleteForm(Form): password = PasswordField('Passwort', [validators.Required(), |