FEATURE: trigger webhook when a user added/removed in a group. (#12653)

Whenever a group is added or removed from a group a webhook event will get triggered if it's active.
This commit is contained in:
Vinoth Kannan
2021-04-08 21:16:34 +05:30
committed by GitHub
parent 38e7fe2770
commit 26d7eedf4c
8 changed files with 73 additions and 2 deletions

View File

@@ -643,10 +643,18 @@ class Group < ActiveRecord::Base
end
def remove(user)
result = self.group_users.where(user: user).each(&:destroy)
return false if result.blank?
group_user = self.group_users.find_by(user: user)
return false if group_user.blank?
has_webhooks = WebHook.active_web_hooks(:group_user)
payload = WebHook.generate_payload(:group_user, group_user, WebHookGroupUserSerializer) if has_webhooks
group_user.destroy
user.update_columns(primary_group_id: nil) if user.primary_group_id == self.id
DiscourseEvent.trigger(:user_removed_from_group, user, self)
WebHook.enqueue_hooks(:group_user, :user_removed_from_group,
id: group_user.id,
payload: payload
) if has_webhooks
true
end