Class: Decidim::Admin::DestroyPrivateUsersFollowsJob
- Inherits:
-
ApplicationJob
- Object
- Decidim::ApplicationJob
- ApplicationJob
- Decidim::Admin::DestroyPrivateUsersFollowsJob
- Defined in:
- app/jobs/decidim/admin/destroy_private_users_follows_job.rb
Instance Method Summary collapse
Instance Method Details
#destroy_children_follows(follows, space) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'app/jobs/decidim/admin/destroy_private_users_follows_job.rb', line 27 def destroy_children_follows(follows, space) follows.map do |follow| object = follow.followable.presence next unless object.respond_to?(:decidim_component_id) follow.destroy if space.component_ids.include?(object.decidim_component_id) end end |
#perform(decidim_user_id, space) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/jobs/decidim/admin/destroy_private_users_follows_job.rb', line 8 def perform(decidim_user_id, space) return unless space.respond_to?(:private_space?) return unless space.private_space? return if space.respond_to?(:is_transparent) && space.is_transparent? user = Decidim::User.find_by(id: decidim_user_id) return if user.blank? return if space.respond_to?(:can_participate?) && space.can_participate?(user) follows = Decidim::Follow.where(user: user) follows.where(followable: space).destroy_all destroy_children_follows(follows, space) end |