From dfdd6899668bb153bfe992566ec1d11de29f2ad7 Mon Sep 17 00:00:00 2001 From: Marian Sigler Date: Wed, 26 Sep 2012 23:46:15 +0200 Subject: Implement username blacklist; Don't allow registration with existing usernames. --- forms.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'forms.py') diff --git a/forms.py b/forms.py index b580e2f..063412b 100644 --- a/forms.py +++ b/forms.py @@ -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'Weitere Informationen' % 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(), -- cgit v1.2.3-1-g7c22