mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Enforce mention limits for chat messages (#19034)
* FEATURE: Enforce mention limits for chat messages The first part of these changes adds a new setting called `max_mentions_per_chat_message`, which skips notifications when the message contains too many mentions. It also respects the `max_users_notified_per_group_mention` setting and skips notifications if expanding a group mention would exceed it. We also include a new component to display JIT warning for these limits to the user while composing a message. * Simplify ignoring/muting filter in chat_notifier * Post-send warnings for unsent warnings * Improve pluralization * Address review feedback * Fix test * Address second feedback round * Third round of feedback Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
This commit is contained in:
@@ -153,23 +153,19 @@ module ChatPublisher
|
||||
user_id,
|
||||
chat_message,
|
||||
cannot_chat_users,
|
||||
without_membership
|
||||
without_membership,
|
||||
too_many_members,
|
||||
mentions_disabled
|
||||
)
|
||||
MessageBus.publish(
|
||||
"/chat/#{chat_message.chat_channel_id}",
|
||||
{
|
||||
type: :mention_warning,
|
||||
chat_message_id: chat_message.id,
|
||||
cannot_see:
|
||||
ActiveModel::ArraySerializer.new(
|
||||
cannot_chat_users,
|
||||
each_serializer: BasicUserSerializer,
|
||||
).as_json,
|
||||
without_membership:
|
||||
ActiveModel::ArraySerializer.new(
|
||||
without_membership,
|
||||
each_serializer: BasicUserSerializer,
|
||||
).as_json,
|
||||
cannot_see: cannot_chat_users.map { |u| { username: u.username, id: u.id } }.as_json,
|
||||
without_membership: without_membership.map { |u| { username: u.username, id: u.id } }.as_json,
|
||||
groups_with_too_many_members: too_many_members.map(&:name).as_json,
|
||||
group_mentions_disabled: mentions_disabled.map(&:name).as_json
|
||||
},
|
||||
user_ids: [user_id],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user