diff options
Diffstat (limited to 'accounts/forms.py')
-rw-r--r-- | accounts/forms.py | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/accounts/forms.py b/accounts/forms.py index ad48ba9..a85f382 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- import re -from flask import current_app, Markup, url_for +from flask import Markup, url_for from flask_wtf import FlaskForm as Form from flask_login import current_user -from wtforms import StringField, PasswordField, ValidationError, BooleanField,\ - validators +from wtforms import StringField, PasswordField, ValidationError, \ + BooleanField, validators from wtforms.form import FormMeta from .utils import NotRegexp +from accounts.app import accounts_app USERNAME_RE = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$') @@ -25,10 +26,10 @@ class RegisterForm(Form): 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 field.data.lower() in current_app.username_blacklist: + accounts_app.user_backend.get_by_uid(field.data) + except accounts_app.user_backend.NoSuchUserError: + if accounts_app.username_blacklist: + if field.data.lower() in accounts_app.username_blacklist: raise ValidationError(Markup( 'Dieser Benutzername ist momentan nicht erlaubt. ' '<a href="%s">Weitere Informationen</a>' @@ -38,8 +39,8 @@ class RegisterForm(Form): def validate_mail(self, field): try: - current_app.user_backend.get_by_mail(field.data) - except current_app.user_backend.NoSuchUserError: + accounts_app.user_backend.get_by_mail(field.data) + except accounts_app.user_backend.NoSuchUserError: pass else: raise ValidationError(Markup( @@ -48,11 +49,12 @@ class RegisterForm(Form): 'die <a href="%s">Passwort-vergessen-Funktion</a> benutzen.' % url_for('default.lost_password'))) + class AdminCreateAccountForm(RegisterForm): def validate_username(self, field): try: - current_app.user_backend.get_by_uid(field.data) - except current_app.user_backend.NoSuchUserError: + accounts_app.user_backend.get_by_uid(field.data) + except accounts_app.user_backend.NoSuchUserError: return else: raise ValidationError('Dieser Benutzername ist schon vergeben') @@ -74,19 +76,19 @@ class LostPasswordForm(Form): def validate_username_or_mail(self, field): if '@' not in field.data: try: - self.user = current_app.user_backend.get_by_uid(field.data) - except current_app.user_backend.NoSuchUserError: + self.user = accounts_app.user_backend.get_by_uid(field.data) + except accounts_app.user_backend.NoSuchUserError: raise ValidationError('Es gibt keinen Benutzer mit diesem Namen.') else: try: - self.user = current_app.user_backend.get_by_mail(field.data) - except current_app.user_backend.NoSuchUserError: + self.user = accounts_app.user_backend.get_by_mail(field.data) + except accounts_app.user_backend.NoSuchUserError: raise ValidationError('Es gibt keinen Benutzer mit dieser Adresse.') class SettingsMeta(FormMeta): def __call__(cls, *args, **kwargs): - for service in current_app.all_services: + for service in accounts_app.all_services: setattr(cls, 'password_%s' % service.id, PasswordField( 'Passwort für %s' % service.name, [ validators.Optional(), @@ -117,18 +119,18 @@ class SettingsForm(Form, metaclass=SettingsMeta): raise ValidationError('Altes Passwort ist falsch.') def validate_mail(self, field): - results = current_app.user_backend.find_by_mail(field.data) + results = accounts_app.user_backend.find_by_mail(field.data) for user in results: if user.uid != current_user.uid: raise ValidationError('Diese E-Mail-Adresse wird schon von einem anderen Account benutzt!') - def get_servicepassword(self, service_id): + def get_servicepassword(self, service_id: str): return getattr(self, 'password_%s' % service_id) - def get_servicepasswordconfirm(self, service_id): + def get_servicepasswordconfirm(self, service_id: str): return getattr(self, 'password_confirm_%s' % service_id) - def get_servicedelete(self, service_id): + def get_servicedelete(self, service_id: str): return getattr(self, 'delete_%s' % service_id) @@ -138,6 +140,6 @@ class AdminDisableAccountForm(Form): def validate_username(self, field): try: - self.user = current_app.user_backend.get_by_uid(field.data) - except current_app.user_backend.NoSuchUserError: + self.user = accounts_app.user_backend.get_by_uid(field.data) + except accounts_app.user_backend.NoSuchUserError: raise ValidationError('Dieser Benutzername existiert nicht') |