mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Add push notification filtering to MessageBus alerts (#25965)
This commit is contained in:
committed by
GitHub
parent
f0baa0ddfe
commit
6c2c690479
@@ -76,7 +76,17 @@ module Jobs
|
||||
}
|
||||
|
||||
if membership.desktop_notifications_always? && !membership.muted?
|
||||
::MessageBus.publish("/chat/notification-alert/#{user.id}", payload, user_ids: [user.id])
|
||||
send_notification =
|
||||
DiscoursePluginRegistry.push_notification_filters.all? do |filter|
|
||||
filter.call(user, payload)
|
||||
end
|
||||
if send_notification
|
||||
::MessageBus.publish(
|
||||
"/chat/notification-alert/#{user.id}",
|
||||
payload,
|
||||
user_ids: [user.id],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
if membership.mobile_notifications_always? && !membership.muted?
|
||||
|
||||
@@ -85,6 +85,16 @@ RSpec.describe Jobs::Chat::NotifyWatching do
|
||||
end
|
||||
end
|
||||
|
||||
context "with push_notification_filter registered to block push notifications" do
|
||||
after { DiscoursePluginRegistry.reset_register!(:push_notification_filters) }
|
||||
|
||||
it "doesn't send notification alert via MessageBus" do
|
||||
Plugin::Instance.new.register_push_notification_filter { |user, payload| false }
|
||||
|
||||
expect(notification_messages_for(user2)).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
context "when the channel is muted via membership preferences" do
|
||||
before { membership2.update!(muted: true) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user