1
|
|
|
""" |
2
|
|
|
byceps.blueprints.common.user.settings.forms |
3
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
4
|
|
|
|
5
|
|
|
:Copyright: 2006-2020 Jochen Kupperschmidt |
6
|
|
|
:License: Modified BSD, see LICENSE for details. |
7
|
|
|
""" |
8
|
|
|
|
9
|
1 |
|
from flask import g |
10
|
1 |
|
from wtforms import DateField, PasswordField, StringField |
11
|
1 |
|
from wtforms.fields.html5 import TelField |
12
|
1 |
|
from wtforms.validators import InputRequired, Length, Optional |
13
|
|
|
|
14
|
1 |
|
from .....services.authentication.password import service as password_service |
15
|
1 |
|
from .....services.user import screen_name_validator, service as user_service |
16
|
1 |
|
from .....util.l10n import LocalizedForm |
17
|
|
|
|
18
|
1 |
|
from ..creation.forms import ScreenNameValidator |
19
|
|
|
|
20
|
|
|
|
21
|
1 |
|
class ChangeScreenNameForm(LocalizedForm): |
22
|
1 |
|
screen_name = StringField('Neuer Benutzername', [ |
23
|
|
|
InputRequired(), |
24
|
|
|
Length(min=screen_name_validator.MIN_LENGTH, |
25
|
|
|
max=screen_name_validator.MAX_LENGTH), |
26
|
|
|
ScreenNameValidator(), |
27
|
|
|
]) |
28
|
1 |
|
password = PasswordField('Aktuelles Passwort', [InputRequired()]) |
29
|
|
|
|
30
|
1 |
|
@staticmethod |
31
|
|
|
def validate_screen_name(form, field): |
32
|
|
|
if g.current_user.screen_name == field.data: |
33
|
|
|
raise ValueError('Dies ist bereits der aktuelle Benutzername.') |
34
|
|
|
|
35
|
|
|
if user_service.is_screen_name_already_assigned(field.data): |
36
|
|
|
raise ValueError('Dieser Benutzername kann nicht verwendet werden.') |
37
|
|
|
|
38
|
1 |
|
@staticmethod |
39
|
|
|
def validate_password(form, field): |
40
|
|
|
user_id = g.current_user.id |
41
|
|
|
password = field.data |
42
|
|
|
|
43
|
|
|
if not password_service.is_password_valid_for_user(user_id, password): |
44
|
|
|
raise ValueError('Das Passwort ist nicht korrekt.') |
45
|
|
|
|
46
|
|
|
|
47
|
1 |
|
class DetailsForm(LocalizedForm): |
48
|
1 |
|
first_names = StringField('Vorname(n)', [InputRequired(), Length(min=2)]) |
49
|
1 |
|
last_name = StringField('Nachname', [InputRequired(), Length(min=2, max=80)]) |
50
|
1 |
|
date_of_birth = DateField('Geburtsdatum', |
51
|
|
|
[Optional()], |
52
|
|
|
format='%d.%m.%Y') |
53
|
1 |
|
country = StringField('Land', [Optional(), Length(max=60)]) |
54
|
1 |
|
zip_code = StringField('PLZ', [Optional()]) |
55
|
1 |
|
city = StringField('Stadt', [Optional()]) |
56
|
1 |
|
street = StringField('Straße', [Optional()]) |
57
|
|
|
phone_number = TelField('Telefonnummer', [Optional(), Length(max=20)]) |
58
|
|
|
|