사용자 이름의 대문자가 작성기에서 멘션 도달성 확인을 방해합니다

좋은 발견이네요 @thoka !

문제는 여기에 있습니다.

users{"username_lower" => User object }를 반환합니다.

하지만 name이 소문자로 변환되지 않으면 users[name]은 존재하지 않습니다.

수정 방법:

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

아니면 더 좋은 방법은: 메서드 시작 부분에서 모든 이름을 소문자로 변환하는 것입니다. 여기에는 많은 문제가 있는데, groups.where("lower(name) IN (?)", @names.map(&:downcase))를 잘 수행하지만, visible_group_ids_for_allowed_check, topic_allowed_group_ids, mentionable_group_idsmembers_visible_group_ids와 같은 함수들은 모두 where(name: @names)를 사용하여 대소문자 구분 문제를 유발합니다.

3개의 좋아요