You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Регистрация (schemas.py:5-11, routers/auth.py:46-51): пароль любой длины (включая пустой); EmailStr не нормализует регистр, а users.email UNIQUE регистрозависим — два аккаунта на одну почту; SELECT-then-INSERT без ловли IntegrityError — конкурентная регистрация даёт 500.
Фикс:password: str = Field(min_length=8); email в lowercase перед вставкой (CITEXT или нормализация); ловить IntegrityError → 409. Verify: регистрация дубликата → 409; a@x.com == A@x.com. Источник: docs/REVIEW-2026-09-13-merged.md M9
Автоматически создано из сводного ревью. Сверяй актуальность номеров строк — они зафиксированы на коммите 91efb5b.
Activity
SlavaKuntsov commentedon Sep 18, 2026
Ready for review — Phase 16
Implemented (#49)
password: Field(min_length=8)в RegisterRequest (login без политики — не ломаем существующих)IntegrityErrorна commit → rollback + 409 (гонка SELECT-then-INSERT)Verification
make test-py— 38 passedCommits:
56f4536(+cf78449fixes). PR закроет тикет черезCloses #49.SlavaKuntsov commentedon Sep 18, 2026
Pull request opened
#77 — will auto-close via
Closes #49on merge.Project status:
In review(synced).Verification
make test-py/make test-go— passmake lint-py/make lint-go/make lint-front— чистоmake up && make e2e— PASS на чистых volumesRemaining risks
none known (follow-up: #76)