mirror of
https://github.com/discourse/discourse.git
synced 2024-11-28 08:45:26 +08:00
271ddac467
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.
18 lines
486 B
Ruby
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
|