diff options
author | Robert Speicher <rspeicher@gmail.com> | 2018-11-19 12:06:10 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2018-11-19 12:06:10 +0000 |
commit | 3eb366722e32d878d56ed09a5fa596b777fccef5 (patch) | |
tree | 27e36f7a338773404d2d8937ef18616f5e73c255 | |
parent | 3438587ccc5af497ef1eb97395fbc832c1e43163 (diff) | |
parent | 0aa386f75c96356a7f40c0b8029f9df608babe99 (diff) | |
download | gitlab-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.rb | 24 |
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? |