From 35442766cf1041d2bb100ff73f58f92347649027 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Wed, 18 Jan 2017 14:13:01 +0100 Subject: do not map usersat all unless admin --- lib/gitlab/import_export/members_mapper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb index b790733f4a7..1dab7c37d25 100644 --- a/lib/gitlab/import_export/members_mapper.rb +++ b/lib/gitlab/import_export/members_mapper.rb @@ -4,7 +4,7 @@ module Gitlab attr_reader :missing_author_ids def initialize(exported_members:, user:, project:) - @exported_members = exported_members + @exported_members = user.admin? ? exported_members : [] @user = user @project = project @missing_author_ids = [] @@ -64,7 +64,7 @@ module Gitlab end def find_project_user_query(member) - user_arel[:username].eq(member['user']['username']).or(user_arel[:email].eq(member['user']['email'])) + user_arel[:email].eq(member['user']['email']).or(user_arel[:username].eq(member['user']['username'])) end def user_arel -- cgit v1.2.1 From b3bb8dc46faf448d02e917586e7666143d7ab968 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Wed, 18 Jan 2017 15:46:54 +0100 Subject: added spec replicating the problem --- lib/gitlab/import_export/relation_factory.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/gitlab/import_export/relation_factory.rb b/lib/gitlab/import_export/relation_factory.rb index 7a649f28340..a5f6fbbcfd3 100644 --- a/lib/gitlab/import_export/relation_factory.rb +++ b/lib/gitlab/import_export/relation_factory.rb @@ -14,7 +14,7 @@ module Gitlab priorities: :label_priorities, label: :project_label }.freeze - USER_REFERENCES = %w[author_id assignee_id updated_by_id user_id created_by_id merge_user_id].freeze + USER_REFERENCES = %w[author_id assignee_id updated_by_id user_id created_by_id merge_user_id resolved_by_id].freeze PROJECT_REFERENCES = %w[project_id source_project_id gl_project_id target_project_id].freeze -- cgit v1.2.1 From 17c099161ee582e627a531bda1d84574d6a8c0f7 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Wed, 18 Jan 2017 17:40:24 +0100 Subject: fix and refactor note user mapping --- lib/gitlab/import_export/members_mapper.rb | 2 -- lib/gitlab/import_export/relation_factory.rb | 10 +++------- 2 files changed, 3 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb index 1dab7c37d25..ac7604d2461 100644 --- a/lib/gitlab/import_export/members_mapper.rb +++ b/lib/gitlab/import_export/members_mapper.rb @@ -7,7 +7,6 @@ module Gitlab @exported_members = user.admin? ? exported_members : [] @user = user @project = project - @missing_author_ids = [] # This needs to run first, as second call would be from #map # which means project members already exist. @@ -39,7 +38,6 @@ module Gitlab def missing_keys_tracking_hash Hash.new do |_, key| - @missing_author_ids << key default_user_id end end diff --git a/lib/gitlab/import_export/relation_factory.rb b/lib/gitlab/import_export/relation_factory.rb index a5f6fbbcfd3..e5f9aa39190 100644 --- a/lib/gitlab/import_export/relation_factory.rb +++ b/lib/gitlab/import_export/relation_factory.rb @@ -80,17 +80,13 @@ module Gitlab # is left. def set_note_author old_author_id = @relation_hash['author_id'] - - # Users with admin access can map users - @relation_hash['author_id'] = admin_user? ? @members_mapper.map[old_author_id] : @members_mapper.default_user_id - author = @relation_hash.delete('author') - update_note_for_missing_author(author['name']) if missing_author?(old_author_id) + update_note_for_missing_author(author['name']) unless has_author?(old_author_id) end - def missing_author?(old_author_id) - !admin_user? || @members_mapper.missing_author_ids.include?(old_author_id) + def has_author?(old_author_id) + admin_user? && !@members_mapper.map.keys.include?(old_author_id) end def missing_author_note(updated_at, author_name) -- cgit v1.2.1 From e8a9682bc98bd5e50ca52b39891cf3f7945b2300 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Thu, 19 Jan 2017 09:44:20 +0100 Subject: fix typo --- lib/gitlab/import_export/relation_factory.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/gitlab/import_export/relation_factory.rb b/lib/gitlab/import_export/relation_factory.rb index e5f9aa39190..19e43cce768 100644 --- a/lib/gitlab/import_export/relation_factory.rb +++ b/lib/gitlab/import_export/relation_factory.rb @@ -86,7 +86,7 @@ module Gitlab end def has_author?(old_author_id) - admin_user? && !@members_mapper.map.keys.include?(old_author_id) + admin_user? && @members_mapper.map.keys.include?(old_author_id) end def missing_author_note(updated_at, author_name) -- cgit v1.2.1 From e8396d8e734756be0a1460e83ed010025082e933 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Fri, 20 Jan 2017 14:37:52 +0100 Subject: fix member mapper spec --- lib/gitlab/import_export/members_mapper.rb | 2 -- 1 file changed, 2 deletions(-) (limited to 'lib') diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb index ac7604d2461..2405b94db50 100644 --- a/lib/gitlab/import_export/members_mapper.rb +++ b/lib/gitlab/import_export/members_mapper.rb @@ -1,8 +1,6 @@ module Gitlab module ImportExport class MembersMapper - attr_reader :missing_author_ids - def initialize(exported_members:, user:, project:) @exported_members = user.admin? ? exported_members : [] @user = user -- cgit v1.2.1