fix(validation): validatePassword проверяет заглавную и цифру (соответствует хинту)
Some checks failed
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
Docker Public / Build + push Public (push) Has been cancelled
Docker Public / Deploy Public on stage (push) Has been cancelled

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
nns 2026-05-18 12:52:59 +05:00
parent 259706e21f
commit fc2cbee3d7
2 changed files with 4 additions and 9 deletions

View file

@ -19,13 +19,10 @@ export function validateEmail(value: string): string | null {
}
export function validatePassword(value: string): string | null {
// На клиенте — только базовая проверка длины. Все правила сложности
// (заглавные, цифры, спецсимволы) проверяет серверный ASP.NET Identity
// и возвращает конкретное сообщение в общий error-bar формы. Дублировать
// правила на фронте опасно: они расходятся с серверной политикой и
// блокируют ввод валидных паролей.
if (!value) return 'Это поле обязательно для заполнения'
if (value.length < 8) return 'Пароль должен быть не менее 8 символов'
if (!/[A-Z]/.test(value)) return 'Пароль должен содержать хотя бы одну заглавную букву'
if (!/[0-9]/.test(value)) return 'Пароль должен содержать хотя бы одну цифру'
return null
}

View file

@ -26,12 +26,10 @@ export function validateEmail(value: string): string | null {
}
export function validatePassword(value: string): string | null {
// На клиенте — только проверка длины. Сложность (заглавные/цифры/
// спецсимволы) проверяет серверный Identity и возвращает конкретное
// сообщение в error-bar. Дубль правил на фронте расходится с серверной
// политикой и блокирует ввод валидных паролей.
if (!value) return messages.required
if (value.length < 8) return messages.passwordShort
if (!/[A-Z]/.test(value)) return messages.passwordNoUpper
if (!/[0-9]/.test(value)) return messages.passwordNoDigit
return null
}