[Bug] --user-login резолвится в первого попавшегося пользователя без проверки совпадения #60
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Резолв логина в user ID (
redmine_reporter/client.py:199-201):Берётся первый элемент результата без проверки, что найден ровно один пользователь и что его логин совпадает точно. Redmine
user.filterне обязан выполнять exact-match: при частичном совпадении или нескольких похожих логинах отчёт молча строится по чужому user_id.При этом для
--user-nameнеоднозначность уже корректно обрабатывается (ошибка со списком до 5 совпадений), а для--user-login— нет. Поведение асимметрично.Пример сценария
Если фильтр вернул
[ivanov, ivanova], отчёт будет построен поivanov— даже если имелся в виду другой человек. Никакого предупреждения пользователь не получит.Рекомендации
user.filter(login=...)проверять точное совпадениеuser.login == text; при нуле или нескольких совпадениях — понятная ошибка, по аналогии с обработкой неоднозначного--user-name.Связанные места
redmine_reporter/client.py:195-205(_resolve_user_id)Критерии приёмки
--user-loginпринимает только точное совпадение логина.