summaryrefslogtreecommitdiffstats
path: root/accounts/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/forms.py')
-rw-r--r--accounts/forms.py46
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')