diff --git a/app/jobs/regular/notify_tag_change.rb b/app/jobs/regular/notify_tag_change.rb index e503287810c..6e45c24d57b 100644 --- a/app/jobs/regular/notify_tag_change.rb +++ b/app/jobs/regular/notify_tag_change.rb @@ -3,6 +3,8 @@ module Jobs class NotifyTagChange < ::Jobs::Base def execute(args) + return if SiteSetting.disable_tags_edit_notifications + post = Post.find_by(id: args[:post_id]) if post&.topic&.visible? diff --git a/lib/post_revisor.rb b/lib/post_revisor.rb index 7a2ac7f3517..dfa5904d78c 100644 --- a/lib/post_revisor.rb +++ b/lib/post_revisor.rb @@ -113,7 +113,14 @@ class PostRevisor DB.after_commit do post = tc.topic.ordered_posts.first notified_user_ids = [post.user_id, post.last_editor_id].uniq - Jobs.enqueue(:notify_tag_change, post_id: post.id, notified_user_ids: notified_user_ids, diff_tags: ((tags - prev_tags) | (prev_tags - tags))) if !SiteSetting.disable_tags_edit_notifications + if !SiteSetting.disable_tags_edit_notifications + Jobs.enqueue( + :notify_tag_change, + post_id: post.id, + notified_user_ids: notified_user_ids, + diff_tags: ((tags - prev_tags) | (prev_tags - tags)) + ) + end end end end diff --git a/spec/jobs/notify_tag_change_spec.rb b/spec/jobs/notify_tag_change_spec.rb index e5e2f8a6f61..f5bb3883190 100644 --- a/spec/jobs/notify_tag_change_spec.rb +++ b/spec/jobs/notify_tag_change_spec.rb @@ -25,6 +25,22 @@ describe ::Jobs::NotifyTagChange do expect(notification.notification_type).to eq(Notification.types[:posted]) end + it "doesn't create notifications if tags edit notifications are disabled" do + SiteSetting.disable_tags_edit_notifications = true + + TagUser.create!( + user_id: user.id, + tag_id: tag.id, + notification_level: NotificationLevels.topic_levels[:watching] + ) + TopicTag.create!( + topic_id: post.topic.id, + tag_id: tag.id + ) + + expect { described_class.new.execute(post_id: post.id, notified_user_ids: [regular_user.id]) }.not_to change { Notification.count } + end + it 'doesnt create notification for user watching category' do CategoryUser.create!( user_id: user.id,