Commit 8d2b9a3b authored by Robert Speicher's avatar Robert Speicher

Merge branch 'ee-refactor-member-add-user-for-ee' into 'master'

EE: Refactor Member#add_user for GitLab EE

See merge request gitlab-org/gitlab-ee!8471
parents 61997c57 66880cf7
...@@ -9,7 +9,6 @@ class Member < ActiveRecord::Base ...@@ -9,7 +9,6 @@ class Member < ActiveRecord::Base
include Presentable include Presentable
attr_accessor :raw_invite_token attr_accessor :raw_invite_token
attr_accessor :skip_notification
belongs_to :created_by, class_name: "User" belongs_to :created_by, class_name: "User"
belongs_to :user belongs_to :user
...@@ -153,18 +152,13 @@ class Member < ActiveRecord::Base ...@@ -153,18 +152,13 @@ class Member < ActiveRecord::Base
return member unless can_update_member?(current_user, member) return member unless can_update_member?(current_user, member)
member.attributes = { set_member_attributes(
created_by: member.created_by || current_user, member,
access_level: access_level, access_level,
expires_at: expires_at current_user: current_user,
} expires_at: expires_at,
## EE-only START
member.attributes = {
skip_notification: ldap,
ldap: ldap ldap: ldap
} )
## EE-only END
if member.request? if member.request?
::Members::ApproveAccessRequestService.new( ::Members::ApproveAccessRequestService.new(
...@@ -183,6 +177,18 @@ class Member < ActiveRecord::Base ...@@ -183,6 +177,18 @@ class Member < ActiveRecord::Base
# rubocop: enable CodeReuse/ServiceClass # rubocop: enable CodeReuse/ServiceClass
end 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) def add_users(source, users, access_level, current_user: nil, expires_at: nil)
return [] unless users.present? return [] unless users.present?
...@@ -425,3 +431,5 @@ class Member < ActiveRecord::Base ...@@ -425,3 +431,5 @@ class Member < ActiveRecord::Base
{} {}
end end
end end
Member.prepend(EE::Member)
# frozen_string_literal: true
module EE
module Member
extend ActiveSupport::Concern
attr_accessor :skip_notification
class_methods do
extend ::Gitlab::Utils::Override
override :set_member_attributes
def set_member_attributes(member, access_level, current_user: nil, expires_at: nil, ldap: false)
super
member.attributes = {
skip_notification: ldap,
ldap: ldap
}
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment