summaryrefslogtreecommitdiffstats
path: root/accounts/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/forms.py')
-rw-r--r--accounts/forms.py63
1 files changed, 34 insertions, 29 deletions
diff --git a/accounts/forms.py b/accounts/forms.py
index c414e57..b404d73 100644
--- a/accounts/forms.py
+++ b/accounts/forms.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
import re
-from flask import g, current_app, session, Markup, url_for
+from flask import current_app, Markup, url_for
from flask.ext.wtf import Form
from flask.ext.login import current_user
from wtforms import TextField, PasswordField, ValidationError, BooleanField,\
@@ -9,45 +9,47 @@ from wtforms.form import FormMeta
from utils import NotRegexp
-_username_re = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$')
-_username_exclude_re = re.compile(r'^(admin|root)')
+USERNAME_RE = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$')
+USERNAME_EXCLUDE_RE = re.compile(r'^(admin|root)')
class RegisterForm(Form):
username = TextField('Benutzername', [
- validators.Regexp(_username_re, message=u'Benutzername darf nur aus '
- u'a-z, Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'),
- NotRegexp(_username_exclude_re, message=u'Dieser Benutzername ist nicht erlaubt.'),
+ validators.Regexp(USERNAME_RE, message=u'Benutzername darf nur aus a-z, '
+ u'Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'),
+ NotRegexp(USERNAME_EXCLUDE_RE, message=u'Dieser Benutzername ist nicht erlaubt.'),
])
mail = TextField('E-Mail-Adresse', [validators.Email(), validators.Length(min=6, max=50)])
- question = TextField('Hauptstadt von Deutschland?', [validators.AnyOf(('Berlin', 'berlin'),
- message=u'Bitte beantworte die Frage.')])
+ question = TextField('Hauptstadt von Deutschland?', [validators.AnyOf(
+ ('Berlin', 'berlin'), message=u'Bitte beantworte die Frage.')])
- def validate_username(form, field):
+ def validate_username(self, field):
try:
current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
- if current_app.username_blacklist:
+ 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('default.about')))
+ raise ValidationError(Markup(
+ u'Dieser Benutzername ist momentan nicht erlaubt. '
+ u'<a href="%s">Weitere Informationen</a>'
+ % url_for('default.about')))
else:
raise ValidationError(u'Dieser Benutzername ist schon vergeben.')
- def validate_mail(form, field):
+ def validate_mail(self, field):
try:
current_app.user_backend.get_by_mail(field.data)
except current_app.user_backend.NoSuchUserError:
pass
else:
- raise ValidationError(Markup(u'Ein Benutzername mit dieser Adresse existiert bereits. '
- u'Falls du deinen Benutzernamen vergessen hast, kannst du die '
- u'<a href="%s">Passwort-vergessen-Funktion</a> benutzen.'
- % url_for('default.lost_password')))
+ raise ValidationError(Markup(
+ u'Ein Benutzername mit dieser Adresse existiert bereits. '
+ u'Falls du deinen Benutzernamen vergessen hast, kannst du '
+ u'die <a href="%s">Passwort-vergessen-Funktion</a> benutzen.'
+ % url_for('default.lost_password')))
class AdminCreateAccountForm(RegisterForm):
- def validate_username(form, field):
+ def validate_username(self, field):
try:
current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
@@ -67,17 +69,18 @@ class RegisterCompleteForm(Form):
class LostPasswordForm(Form):
username_or_mail = TextField(u'Benutzername oder E-Mail')
+ user = None
- def validate_username_or_mail(form, field):
+ def validate_username_or_mail(self, field):
if '@' not in field.data:
try:
- form.user = current_app.user_backend.get_by_uid(field.data)
- except NoSuchUserError:
+ self.user = current_app.user_backend.get_by_uid(field.data)
+ except current_app.user_backend.NoSuchUserError:
raise ValidationError(u'Es gibt keinen Benutzer mit diesem Namen.')
else:
try:
- form.user = current_app.user_backend.get_by_mail(field.data)
- except NoSuchUserError:
+ self.user = current_app.user_backend.get_by_mail(field.data)
+ except current_app.user_backend.NoSuchUserError:
raise ValidationError(u'Es gibt keinen Benutzer mit dieser Adresse.')
@@ -98,6 +101,7 @@ class SettingsMeta(FormMeta):
return super(SettingsMeta, cls).__call__(*args, **kwargs)
+
class SettingsForm(Form):
__metaclass__ = SettingsMeta
@@ -107,14 +111,14 @@ class SettingsForm(Form):
password_confirm = PasswordField(u'Passwort bestätigen')
mail = TextField('E-Mail-Adresse', [validators.Optional(), validators.Email(), validators.Length(min=6, max=50)])
- def validate_old_password(form, field):
- if form.password.data:
+ def validate_old_password(self, field):
+ if self.password.data:
if not field.data:
raise ValidationError(u'Gib bitte dein altes Passwort ein, um ein neues zu setzen.')
if field.data != current_user.password:
raise ValidationError(u'Altes Passwort ist falsch.')
- def validate_mail(form, field):
+ def validate_mail(self, field):
results = current_app.user_backend.find_by_mail(field.data)
for user in results:
if user.uid != current_user.uid:
@@ -132,9 +136,10 @@ class SettingsForm(Form):
class AdminDisableAccountForm(Form):
username = TextField(u'Benutzername')
+ user = None
- def validate_username(form, field):
+ def validate_username(self, field):
try:
- form.user = current_app.user_backend.get_by_uid(field.data)
+ self.user = current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
raise ValidationError(u'Dieser Benutzername existiert nicht')