diff options
author | Boyan Tabakov <boyan.tabakov@futurice.com> | 2014-08-21 14:53:32 +0400 |
---|---|---|
committer | Boyan Tabakov <boyan.tabakov@futurice.com> | 2015-01-27 10:25:28 +0300 |
commit | 93bc2d5202e5802bd31419d05232b62355516a53 (patch) | |
tree | a1b2f38faa6470b8df2f0047115a22fbe8361f57 /app/models/members | |
parent | a4dad7085850aa62134ed23b90f3a045c3569663 (diff) |
Added support for firing system hooks on group create/destroy and adding/removing users to group.
Added tests and updated docs. Also adding 'user_id' field in the hooks for adding/removing user from team.
Diffstat (limited to 'app/models/members')
-rw-r--r-- | app/models/members/group_member.rb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb index b7f296b13fb..28d0b4483b4 100644 --- a/app/models/members/group_member.rb +++ b/app/models/members/group_member.rb @@ -27,8 +27,9 @@ class GroupMember < Member scope :with_group, ->(group) { where(source_id: group.id) } scope :with_user, ->(user) { where(user_id: user.id) } - after_create :notify_create + after_create :post_create_hook after_update :notify_update + after_destroy :post_destroy_hook def self.access_level_roles Gitlab::Access.options_with_owner @@ -42,8 +43,9 @@ class GroupMember < Member access_level end - def notify_create + def post_create_hook notification_service.new_group_member(self) + system_hook_service.execute_hooks_for(self, :create) end def notify_update @@ -52,6 +54,14 @@ class GroupMember < Member end end + def post_destroy_hook + system_hook_service.execute_hooks_for(self, :destroy) + end + + def system_hook_service + SystemHooksService.new + end + def notification_service NotificationService.new end |