diff options
author | James Lopez <james@jameslopez.es> | 2019-05-23 09:44:06 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2019-05-23 09:44:06 +0200 |
commit | 2ccbdf38a9305b65728ca4b38856ea8996e769b1 (patch) | |
tree | e6cc67f75b1cafe9b4449d110d39446dbd8a774b | |
parent | e1407df4a1943efefd34e152db3ef1a8281a305d (diff) | |
download | gitlab-ce-2ccbdf38a9305b65728ca4b38856ea8996e769b1.tar.gz |
Fix issue importing members with owner access
-rw-r--r-- | lib/gitlab/import_export/members_mapper.rb | 6 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/members_mapper_spec.rb | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb index 6be95a16513..5ab5059165e 100644 --- a/lib/gitlab/import_export/members_mapper.rb +++ b/lib/gitlab/import_export/members_mapper.rb @@ -59,7 +59,11 @@ module Gitlab end def member_hash(member) - parsed_hash(member).merge('source_id' => @project.id, 'importing' => true) + parsed_hash(member).merge( + 'source_id' => @project.id, + 'importing' => true, + 'access_level' => [member['access_level'], ProjectMember::MAINTAINER].min + ) end def parsed_hash(member) diff --git a/spec/lib/gitlab/import_export/members_mapper_spec.rb b/spec/lib/gitlab/import_export/members_mapper_spec.rb index 67e4c289906..c663cf42a83 100644 --- a/spec/lib/gitlab/import_export/members_mapper_spec.rb +++ b/spec/lib/gitlab/import_export/members_mapper_spec.rb @@ -73,6 +73,13 @@ describe Gitlab::ImportExport::MembersMapper do expect(user2.authorized_project?(project)).to be true end + it 'maps an owner as a maintainer' do + exported_members.first['access_level'] = ProjectMember::OWNER + + expect(members_mapper.map[exported_user_id]).to eq(user2.id) + expect(ProjectMember.find_by_user_id(user2.id).access_level).to eq(ProjectMember::MAINTAINER) + end + context 'user is not an admin' do let(:user) { create(:user) } |