discourse/app/jobs/regular/delete_inaccessible_notifications.rb
Gerhard Schlager 271ddac467 FIX: Delete notifications users can't see after moving posts
No need to let notifications stay around when users can't access
a topic after it was converted into a PM or posts were moved
into a restricted topic.

Also makes sure that moving to a new topic correctly uses the
guardian for the first post by enqueuing jobs outside of a
transaction.
2019-07-22 19:02:21 +02:00

18 lines
486 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
if !Guardian.new(notification.user).can_see?(notification.topic)
notification.destroy
end
end
end
end
end