Files

22 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

# Роль по умолчанию — «Просмотр» (изменение 016)
Находка ревью № 6, серьёзность — средняя.
## Context
`POST /users` без поля `role` создаёт администратора (`UserIn.role = Role.admin`, воспроизведено); модель `User.role` тоже `default=Role.admin`.
UI передаёт роль явно, но клиенты API и скрипты по умолчанию получают максимальные права. Принцип наименьших привилегий требует `viewer`.
## Решение
1. `app/schemas.py`: `UserIn.role: Role = Role.viewer`.
2. `app/models.py`: `User.role` — `default=Role.viewer`. Первичный администратор из `.env` создаётся в `seed()` с явным `role=Role.admin` (уже так) — не затрагивается.
Серверного значения по умолчанию в БД нет → миграция не нужна.
3. `README.md` (раздел «Пользователи и роли»): роль по умолчанию — `viewer`.
## Файлы
`app/schemas.py`, `app/models.py`, `tests/test_users.py`, `README.md`.
## Тест
В `test_users_management`: создание без `role` → `role == "viewer"`.
## Проверка
`pytest -q`; UI «Новый пользователь» по-прежнему предлагает «Просмотр».