Set Private visibility for restricted Internal imported projects
With https://gitlab.com/gitlab-org/gitlab-ee/issues/12388 change going live there is potential risk of breaking imports of 'Internal' projects. This change makes sure if 'Internal' visibility level is restricted all 'Internal' projects will be marked as 'Private' See: https://gitlab.com/gitlab-org/gitlab-ce/issues/64311
This commit is contained in:
parent
0da7c92508
commit
9ef196b7a7
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Set visibility level 'Private' for restricted 'Internal' imported projects when 'Internal' visibility setting is restricted in admin settings
|
||||
merge_request: 30522
|
||||
author:
|
||||
type: other
|
|
@ -116,3 +116,8 @@ For more details on the specific data persisted in a project export, see the
|
|||
|
||||
1. Click on **Import project** to begin importing. Your newly imported project
|
||||
page will appear soon.
|
||||
|
||||
NOTE: **Note:**
|
||||
If use of the `Internal` visibility level
|
||||
[is restricted](../../../public_access/public_access.md#restricting-the-use-of-public-or-internal-projects),
|
||||
all imported projects are given the visibility of `Private`.
|
||||
|
|
|
@ -130,6 +130,7 @@ module Gitlab
|
|||
def visibility_level
|
||||
level = override_params['visibility_level'] || json_params['visibility_level'] || @project.visibility_level
|
||||
level = @project.group.visibility_level if @project.group && level.to_i > @project.group.visibility_level
|
||||
level = Gitlab::VisibilityLevel::PRIVATE if level == Gitlab::VisibilityLevel::INTERNAL && Gitlab::CurrentSettings.restricted_visibility_levels.include?(level)
|
||||
|
||||
{ 'visibility_level' => level }
|
||||
end
|
||||
|
|
|
@ -496,6 +496,18 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do
|
|||
end
|
||||
end
|
||||
|
||||
context 'with restricted internal visibility' do
|
||||
describe 'internal project' do
|
||||
let(:visibility) { Gitlab::VisibilityLevel::INTERNAL }
|
||||
|
||||
it 'uses private visibility' do
|
||||
stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::INTERNAL])
|
||||
|
||||
expect(restorer.restored_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with group visibility' do
|
||||
before do
|
||||
group = create(:group, visibility_level: group_visibility)
|
||||
|
@ -528,6 +540,14 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do
|
|||
it 'uses the group visibility' do
|
||||
expect(restorer.restored_project.visibility_level).to eq(group_visibility)
|
||||
end
|
||||
|
||||
context 'with restricted internal visibility' do
|
||||
it 'sets private visibility' do
|
||||
stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::INTERNAL])
|
||||
|
||||
expect(restorer.restored_project.visibility_level).to eq(Gitlab::VisibilityLevel::PRIVATE)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue