Skip to content
Snippets Groups Projects
Unverified Commit 0aa386f7 authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Refactor Member#add_user for GitLab EE

GitLab EE extends Member#add_user by adding some LDAP specific flags.
Prior to these changes, the only way this could be done was by modifying
Member#add_user in place. This could lead to merge conflicts whenever a
developer wants to change this method.

To resolve this issue, the logic that EE extends has been moved into a
separate method with the appropriate arguments. This allows EE to extend
the logic by prepending the method using an EE specific module.
parent 379ed169
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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(
Loading
Loading
@@ -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?
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment