diff --git a/app/models/project.rb b/app/models/project.rb index a66ed6736ca..5439f94c4a9 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -73,7 +73,7 @@ class Project < ActiveRecord::Base delegate :no_import?, to: :import_state, allow_nil: true default_value_for :archived, false - default_value_for :visibility_level, gitlab_config_features.visibility_level + default_value_for(:visibility_level) { Gitlab::CurrentSettings.default_project_visibility } default_value_for :resolve_outdated_diff_discussions, false default_value_for :container_registry_enabled, gitlab_config_features.container_registry default_value_for(:repository_storage) { Gitlab::CurrentSettings.pick_repository_storage } diff --git a/changelogs/unreleased/45779-fix-default-visibility-level-for-projects.yml b/changelogs/unreleased/45779-fix-default-visibility-level-for-projects.yml new file mode 100644 index 00000000000..b4cba5041d1 --- /dev/null +++ b/changelogs/unreleased/45779-fix-default-visibility-level-for-projects.yml @@ -0,0 +1,5 @@ +--- +title: Fix default visibility_level for new projects +merge_request: 24120 +author: Fabian Schneider @fabsrc +type: fixed diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 3044150bca8..ffbf0960c95 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1413,6 +1413,24 @@ describe Project do end end + describe '#visibility_level' do + let(:project) { build(:project) } + + subject { project.visibility_level } + + context 'by default' do + it { is_expected.to eq(Gitlab::VisibilityLevel::PRIVATE) } + end + + context 'when set to INTERNAL in application settings' do + before do + stub_application_setting(default_project_visibility: Gitlab::VisibilityLevel::INTERNAL) + end + + it { is_expected.to eq(Gitlab::VisibilityLevel::INTERNAL) } + end + end + describe '#visibility_level_allowed?' do let(:project) { create(:project, :internal) }