Merge branch 'sh-project-import-visibility-error' into 'master'

Fix invalid visibility string comparison in project import

Closes #61692

See merge request gitlab-org/gitlab-ce!28612
This commit is contained in:
Douglas Barbosa Alexandre 2019-05-22 19:40:03 +00:00
commit add00b6986
3 changed files with 19 additions and 1 deletions

View File

@ -0,0 +1,5 @@
---
title: Fix invalid visibility string comparison in project import
merge_request: 28612
author:
type: fixed

View File

@ -129,7 +129,7 @@ module Gitlab
def visibility_level def visibility_level
level = override_params['visibility_level'] || json_params['visibility_level'] || @project.visibility_level level = override_params['visibility_level'] || json_params['visibility_level'] || @project.visibility_level
level = @project.group.visibility_level if @project.group && level > @project.group.visibility_level level = @project.group.visibility_level if @project.group && level.to_i > @project.group.visibility_level
{ 'visibility_level' => level } { 'visibility_level' => level }
end end

View File

@ -328,6 +328,19 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do
end end
context 'when the project has overridden params in import data' do context 'when the project has overridden params in import data' do
it 'handles string versions of visibility_level' do
# Project needs to be in a group for visibility level comparison
# to happen
group = create(:group)
project.group = group
project.create_import_data(data: { override_params: { visibility_level: Gitlab::VisibilityLevel::INTERNAL.to_s } })
restored_project_json
expect(project.visibility_level).to eq(Gitlab::VisibilityLevel::INTERNAL)
end
it 'overwrites the params stored in the JSON' do it 'overwrites the params stored in the JSON' do
project.create_import_data(data: { override_params: { description: "Overridden" } }) project.create_import_data(data: { override_params: { description: "Overridden" } })