diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2017-11-03 11:26:52 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-11-03 11:26:52 +0000 |
commit | 6f1a4ba457afd92a12913a9eddd7af483f5cfff1 (patch) | |
tree | a95d5a1aa50afc13068cb11167c5b075b05994f1 /app/services | |
parent | 7961c235d57bd1933d6687619a7b2162b9cf3bfc (diff) | |
download | gitlab-ce-6f1a4ba457afd92a12913a9eddd7af483f5cfff1.tar.gz |
Add system hooks user_rename and group_rename
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/system_hooks_service.rb | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb index 5d275967821..911cc919bb8 100644 --- a/app/services/system_hooks_service.rb +++ b/app/services/system_hooks_service.rb @@ -35,24 +35,22 @@ class SystemHooksService data[:old_path_with_namespace] = model.old_path_with_namespace end when User - data.merge!({ - name: model.name, - email: model.email, - user_id: model.id, - username: model.username - }) + data.merge!(user_data(model)) + + if event == :rename + data[:old_username] = model.username_was + end when ProjectMember data.merge!(project_member_data(model)) when Group - owner = model.owner + data.merge!(group_data(model)) - data.merge!( - name: model.name, - path: model.path, - group_id: model.id, - owner_name: owner.respond_to?(:name) ? owner.name : nil, - owner_email: owner.respond_to?(:email) ? owner.email : nil - ) + if event == :rename + data.merge!( + old_path: model.path_was, + old_full_path: model.full_path_was + ) + end when GroupMember data.merge!(group_member_data(model)) end @@ -104,6 +102,19 @@ class SystemHooksService } end + def group_data(model) + owner = model.owner + + { + name: model.name, + path: model.path, + full_path: model.full_path, + group_id: model.id, + owner_name: owner.try(:name), + owner_email: owner.try(:email) + } + end + def group_member_data(model) { group_name: model.group.name, @@ -116,4 +127,13 @@ class SystemHooksService group_access: model.human_access } end + + def user_data(model) + { + name: model.name, + email: model.email, + user_id: model.id, + username: model.username + } + end end |