mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 16:29:32 +08:00
DEV: Always create chat mention records (#20470)
Before this commit, we created a chat mention record only in case we wanted to send a notification about that mention to the user. Notifications were the only use case for the chat_mention db table. Now we want to use that table for other features, so we have to always create a chat_mention record.
This commit is contained in:

committed by
GitHub

parent
1f88354c5e
commit
fa543cda06
@ -18,6 +18,18 @@ class Chat::ChatMessageMentions
|
||||
:parsed_direct_mentions,
|
||||
:parsed_group_mentions
|
||||
|
||||
def all_mentioned_users_ids
|
||||
@all_mentioned_users_ids ||=
|
||||
begin
|
||||
user_ids = global_mentions.pluck(:id)
|
||||
user_ids.concat(direct_mentions.pluck(:id))
|
||||
user_ids.concat(group_mentions.pluck(:id))
|
||||
user_ids.concat(here_mentions.pluck(:id))
|
||||
user_ids.uniq!
|
||||
user_ids
|
||||
end
|
||||
end
|
||||
|
||||
def global_mentions
|
||||
return User.none unless @has_global_mention
|
||||
channel_members.where.not(username_lower: @parsed_direct_mentions)
|
||||
@ -67,7 +79,6 @@ class Chat::ChatMessageMentions
|
||||
.joins("LEFT OUTER JOIN user_chat_channel_memberships uccm ON uccm.user_id = users.id")
|
||||
.joins(:user_option)
|
||||
.real
|
||||
.not_suspended
|
||||
.where(user_options: { chat_enabled: true })
|
||||
.where.not(username_lower: @message.user.username.downcase)
|
||||
end
|
||||
|
Reference in New Issue
Block a user