izaac-2/backend/users/validators.py
2025-08-31 23:05:53 +02:00

18 lines
979 B
Python

from django.contrib.auth.password_validation import validate_password
from django.core.exceptions import ValidationError
TRANSLATION_MAP = {
"This password is too short. It must contain at least 8 characters.": "Hasło jest za krótkie. Musi mieć co najmniej 8 znaków.",
"This password is too common.": "Hasło jest zbyt popularne.",
"This password is entirely numeric.": "Hasło nie może składać się wyłącznie z cyfr.",
"The password is too similar to the username.": "Hasło jest zbyt podobne do nazwy użytkownika.",
"The password is too similar to the email address.": "Hasło jest zbyt podobne do adresu e-mail.",
# dodaj więcej jeśli potrzeba
}
def validate_password_with_translation(password, user=None):
try:
validate_password(password, user)
except ValidationError as e:
translated_errors = [TRANSLATION_MAP.get(msg, msg) for msg in e.messages]
raise ValidationError(translated_errors)