mirror of
https://github.com/discourse/discourse.git
synced 2025-06-03 19:03:34 +08:00
FIX: Do not error if admin/owner checks target message (#21721)
In the ChannelViewBuilder, we introduced a check to see if the target message exists, which errors if the message has been trashed. However if the user is the creator of the message or admin then they are able to see trashed messages, so we need to take this into account.
This commit is contained in:
@ -65,9 +65,12 @@ module Chat
|
||||
guardian.can_preview_chat_channel?(channel)
|
||||
end
|
||||
|
||||
def target_message_exists(contract:, **)
|
||||
def target_message_exists(contract:, guardian:, **)
|
||||
return true if contract.target_message_id.blank?
|
||||
Chat::Message.exists?(id: contract.target_message_id)
|
||||
target_message = Chat::Message.unscoped.find_by(id: contract.target_message_id)
|
||||
return false if target_message.blank?
|
||||
return true if !target_message.trashed?
|
||||
target_message.user_id == guardian.user.id || guardian.is_staff?
|
||||
end
|
||||
|
||||
def determine_threads_enabled(channel:, **)
|
||||
|
Reference in New Issue
Block a user