Move validation into form field.

This commit is contained in:
Martin Gross
2026-04-08 12:34:26 +02:00
committed by Martin Gross
parent 447cffa7a8
commit 1b88a84a83
2 changed files with 6 additions and 12 deletions

View File

@@ -90,7 +90,7 @@ from pretix.base.settings import (
COUNTRIES_WITH_STATE_IN_ADDRESS, COUNTRY_STATE_LABEL,
PERSON_NAME_SALUTATIONS, PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS,
)
from pretix.base.templatetags.rich_text import rich_text
from pretix.base.templatetags.rich_text import rich_text, URL_RE
from pretix.base.timemachine import time_machine_now
from pretix.control.forms import (
ExtFileField, ExtValidationMixin, SizeValidationMixin, SplitDateTimeField,
@@ -227,6 +227,11 @@ class NamePartsFormField(forms.MultiValueField):
# bots.
r'^[^$€/%§{}<>~]*$',
message=_('Please do not use special characters in names.')
),
RegexValidator(
URL_RE,
inverse_match=True,
message=_('Please do not use special characters in names.')
)
]
}

View File

@@ -43,7 +43,6 @@ from pretix.base.forms.questions import (
)
from pretix.base.i18n import get_language_without_region
from pretix.base.models import Customer
from pretix.base.templatetags.rich_text import URL_RE
from pretix.helpers.http import get_client_ip
from pretix.multidomain.urlreverse import build_absolute_uri
@@ -151,7 +150,6 @@ class RegistrationForm(forms.Form):
"instead."
),
'required': _('This field is required.'),
'invalid_characters': _('Please do not use special characters in names.'),
}
def __init__(self, request=None, *args, **kwargs):
@@ -238,15 +236,6 @@ class RegistrationForm(forms.Form):
code='duplicate',
)
# Since the name is user-controlled and can end up in emails sent to customers
# we want to sanitize for domains and avoid becoming part of a spamming operation.
for name_part in self.cleaned_data.get('name_parts', {}).values():
if URL_RE.search(name_part):
raise forms.ValidationError(
{'name_parts': self.error_messages['invalid_characters']},
code='invalid_characters',
)
if self.standalone:
expect = -1
try: