summaryrefslogtreecommitdiff
path: root/app/models/members
diff options
context:
space:
mode:
authorBoyan Tabakov <boyan.tabakov@futurice.com>2014-08-21 13:53:32 +0300
committerBoyan Tabakov <boyan.tabakov@futurice.com>2015-01-27 09:25:28 +0200
commit93bc2d5202e5802bd31419d05232b62355516a53 (patch)
treea1b2f38faa6470b8df2f0047115a22fbe8361f57 /app/models/members
parenta4dad7085850aa62134ed23b90f3a045c3569663 (diff)
downloadgitlab-ce-93bc2d5202e5802bd31419d05232b62355516a53.tar.gz
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.rb14
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