Заглавные буквы в имени пользователя нарушают проверку достижимого упоминания в редакторе

Отличная находка, @thoka!

Проблема здесь:

users возвращает {"username_lower" => объект User }.

Однако, если name не приведен к нижнему регистру, users[name] не существует.

Исправление:

if user = users[name.downcase]
...
elsif group = groups[name.downcase]
...

Или ещё лучше: приведите все имена к нижнему регистру в начале метода, так как там много проблем. groups корректно использует .where("lower(name) IN (?)", @names.map(&:downcase)), но функции visible_group_ids_for_allowed_check, topic_allowed_group_ids, mentionable_group_ids и members_visible_group_ids все используют where(name: @names), что также вносит проблемы с чувствительностью к регистру.

3 лайка