summaryrefslogtreecommitdiff
path: root/app/services/members/update_service.rb
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-10-11 16:47:08 +0200
committerRémy Coutable <remy@rymai.me>2018-02-27 16:02:22 +0100
commitbf41063679b25371b2e64542f2f469b38502edf6 (patch)
treebc7363df6d75c628f593b29426b59ba05b10a223 /app/services/members/update_service.rb
parent3bf448267b117e79f08ab2f4b769d24a705a5f0f (diff)
downloadgitlab-ce-bf41063679b25371b2e64542f2f469b38502edf6.tar.gz
Remove explicit audit event log in MembershipActions
Move it to Members::ApproveAccessRequestService. Also, note that there was a double audit event log for access request destruction. Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app/services/members/update_service.rb')
-rw-r--r--app/services/members/update_service.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/services/members/update_service.rb b/app/services/members/update_service.rb
new file mode 100644
index 00000000000..ebea9f96069
--- /dev/null
+++ b/app/services/members/update_service.rb
@@ -0,0 +1,17 @@
+module Members
+ class UpdateService < Members::BaseService
+ # returns the updated member
+ def execute(member, permission: :update)
+ permission_target = permission == :override ? source : member
+ raise Gitlab::Access::AccessDeniedError unless can?(current_user, action_member_permission(permission, member), permission_target)
+
+ old_access_level = member.human_access
+
+ if member.update_attributes(params)
+ after_execute(action: permission, old_access_level: old_access_level, member: member)
+ end
+
+ member
+ end
+ end
+end