Files
mediacms/users/validators.py
2026-05-19 21:34:18 +03:00

24 lines
826 B
Python

import re
from django.core import validators
from django.utils.deconstruct import deconstructible
from django.utils.translation import gettext_lazy as _
@deconstructible
class ASCIIUsernameValidator(validators.RegexValidator):
regex = r"^[\w.@-]+$"
message = _("Enter a valid username. This value may contain only English letters, numbers, and '_', '.', '@', '-'.")
flags = re.ASCII
@deconstructible
class LEssRestrictiveUsernameValidator(validators.RegexValidator):
regex = r"^[^\x00-\x1F\\/:*?\"<>|%#&`=~]+$"
message = _("Enter a valid username. This value may contain UTF-8 characters except those reserved for file systems")
flags = 0 # Allow UTF-8 characters
custom_username_validators = [ASCIIUsernameValidator()]
less_restrictive_username_validators = [LEssRestrictiveUsernameValidator]