Class: Gitlab::ImportExport::MembersMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/import_export/members_mapper.rb

Instance Method Summary collapse

Constructor Details

#initialize(exported_members:, user:, importable:, default_member: true) ⇒ MembersMapper

Returns a new instance of MembersMapper.



6
7
8
9
10
11
12
13
14
15
# File 'lib/gitlab/import_export/members_mapper.rb', line 6

def initialize(exported_members:, user:, importable:, default_member: true)
  @user = user
  @importable = importable
  @exported_members = determine_exported_members(exported_members)

  # This needs to run first, as second call would be from #map
  # which means Project/Group members already exist.
  # Skip this when importing single relations to avoid destroying project members
  ensure_default_member! if default_member
end

Instance Method Details

#default_user_idObject



30
31
32
# File 'lib/gitlab/import_export/members_mapper.rb', line 30

def default_user_id
  @user.id
end

#include?(old_user_id) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/gitlab/import_export/members_mapper.rb', line 34

def include?(old_user_id)
  map.has_key?(old_user_id)
end

#mapObject



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gitlab/import_export/members_mapper.rb', line 17

def map
  @map ||=
    @exported_members.each_with_object(missing_keys_tracking_hash) do |member, hash|
      if member['user']
        old_user_id = member['user']['id']
        existing_user_id = existing_users_email_map[get_email(member)]
        hash[old_user_id] = existing_user_id if existing_user_id && add_team_member(member, existing_user_id)
      else
        add_team_member(member)
      end
    end
end