diff options
Diffstat (limited to 'lib/gitlab/import_export/members_mapper.rb')
-rw-r--r-- | lib/gitlab/import_export/members_mapper.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb index d2e27388b51..68d484d5087 100644 --- a/lib/gitlab/import_export/members_mapper.rb +++ b/lib/gitlab/import_export/members_mapper.rb @@ -9,7 +9,7 @@ module Gitlab @importable = importable # This needs to run first, as second call would be from #map - # which means project members already exist. + # which means Project/Group members already exist. ensure_default_member! end @@ -47,6 +47,8 @@ module Gitlab end def ensure_default_member! + return if user_already_member? + @importable.members.destroy_all # rubocop: disable DestroyAll relation_class.create!(user: @user, access_level: relation_class::MAINTAINER, source_id: @importable.id, importing: true) @@ -54,6 +56,12 @@ module Gitlab raise e, "Error adding importer user to #{@importable.class} members. #{e.message}" end + def user_already_member? + member = @importable.members&.first + + member&.user == @user && member.access_level >= relation_class::MAINTAINER + end + def add_team_member(member, existing_user = nil) member['user'] = existing_user |