summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2018-11-19 12:06:10 +0000
committerRobert Speicher <rspeicher@gmail.com>2018-11-19 12:06:10 +0000
commit3eb366722e32d878d56ed09a5fa596b777fccef5 (patch)
tree27e36f7a338773404d2d8937ef18616f5e73c255
parent3438587ccc5af497ef1eb97395fbc832c1e43163 (diff)
parent0aa386f75c96356a7f40c0b8029f9df608babe99 (diff)
downloadgitlab-ce-3eb366722e32d878d56ed09a5fa596b777fccef5.tar.gz
Merge branch 'refactor-member-add-user-for-ee' into 'master'
Refactor Member#add_user for GitLab EE See merge request gitlab-org/gitlab-ce!23119
-rw-r--r--app/models/member.rb24
1 files changed, 19 insertions, 5 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index 0696ea46c8b..bc8ac14d148 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -152,11 +152,13 @@ class Member < ActiveRecord::Base
return member unless can_update_member?(current_user, member)
- member.attributes = {
- created_by: member.created_by || current_user,
- access_level: access_level,
- expires_at: expires_at
- }
+ set_member_attributes(
+ member,
+ access_level,
+ current_user: current_user,
+ expires_at: expires_at,
+ ldap: ldap
+ )
if member.request?
::Members::ApproveAccessRequestService.new(
@@ -175,6 +177,18 @@ class Member < ActiveRecord::Base
# rubocop: enable CodeReuse/ServiceClass
end
+ # Populates the attributes of a member.
+ #
+ # This logic resides in a separate method so that EE can extend this logic,
+ # without having to patch the `add_user` method directly.
+ def set_member_attributes(member, access_level, current_user: nil, expires_at: nil, ldap: false)
+ member.attributes = {
+ created_by: member.created_by || current_user,
+ access_level: access_level,
+ expires_at: expires_at
+ }
+ end
+
def add_users(source, users, access_level, current_user: nil, expires_at: nil)
return [] unless users.present?