# ADR-005: Сброс пароля по email отложен до v0.1.0

Статус: принято.

## Контекст
Ссылка «Забыли пароль?» на странице входа (сброс пароля по email-токену,
аналогично подтверждению регистрации, со страницей задания нового пароля)
рассматривалась для релиза v0.0.1. Инфраструктура писем есть
(`services/email.py`, верификация регистрации), но полный флоу сброса
требует: новый тип одноразового токена и его хранение/инвалидацию, публичный
эндпоинт запроса сброса с rate limit и единообразным ответом (защита от
перебора email), эндпоинт применения токена, новую страницу фронтенда, отзыв
активных refresh-сессий, тесты на всё перечисленное. Это заметный
security-чувствительный объём непосредственно перед тегом v0.0.1.

## Решение
1. В релиз v0.0.1 входит только смена пароля в профиле с проверкой текущего пароля.
2. Сброс пароля по email откладывается до v0.1.0 (вместе с релизом записи
   конференций либо ранее отдельным патчем).
3. Вариант «смена пароля на странице login без проверки старого пароля»
   отвергнут как небезопасный.
4. Операционный обходной путь для забытого пароля в v0.0.1: пользователь
   обращается к администратору; администратор создаёт пользователей сам и
   знает выданный пароль. Возможность админа задать новый пароль
   существующему пользователю в скоуп не добавляется — при необходимости
   решается отдельно.
5. Страница login не меняется: ссылку «Забыли пароль?» не добавляем, чтобы
   не обещать отсутствующую функцию.

## Последствия
- Плюс: минимальный дифф перед тегом, нет спешной реализации
  security-чувствительного публичного флоу.
- Минус: пользователь, забывший пароль, в v0.0.1 зависит от администратора.
- Требования к будущей реализации (v0.1.0): одноразовый токен с TTL,
  хэш токена в хранилище (не сам токен), rate limit и uniform-ответ
  «письмо отправлено, если адрес зарегистрирован», отзыв refresh-токенов
  после смены пароля.
