Class: Jobs::PublishGroupMembershipUpdates

Inherits:
Base
  • Object
show all
Defined in:
app/jobs/regular/publish_group_membership_updates.rb

Instance Method Summary collapse

Methods inherited from Base

acquire_cluster_concurrency_lock!, clear_cluster_concurrency_lock!, cluster_concurrency, cluster_concurrency_redis_key, delayed_perform, #error_context, get_cluster_concurrency, #last_db_duration, #log, #perform, #perform_immediately

Instance Method Details

#execute(args) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/jobs/regular/publish_group_membership_updates.rb', line 5

def execute(args)
  available_types = [Group::AUTO_GROUPS_ADD, Group::AUTO_GROUPS_REMOVE]
  raise Discourse::InvalidParameters.new(:type) if !available_types.include?(args[:type])

  group = Group.find_by(id: args[:group_id])
  return if !group

  added_members = args[:type] == Group::AUTO_GROUPS_ADD

  User
    .human_users
    .where(id: args[:user_ids])
    .each do |user|
      if added_members
        group.trigger_user_added_event(user, group.automatic?)
      else
        group.trigger_user_removed_event(user)
      end
    end
end