discourse/app/jobs/regular/delete_inaccessible_notifications.rb
2023-01-09 14:14:59 +00:00

18 lines
490 B
Ruby

# frozen_string_literal: true
module Jobs
class DeleteInaccessibleNotifications < ::Jobs::Base
def execute(args)
raise Discourse::InvalidParameters.new(:topic_id) if args[:topic_id].blank?
Notification
.where(topic_id: args[:topic_id])
.find_each do |notification|
next unless notification.user && notification.topic
notification.destroy if !Guardian.new(notification.user).can_see?(notification.topic)
end
end
end
end