Commit 460dfa53 authored by James Lopez's avatar James Lopez

Merge branch...

Merge branch '263305-regression-custom-project-templates-no-longer-work-with-internal-visibility' into 'master'

Fix internal projects not being found by custom templates finder

See merge request gitlab-org/gitlab!59353
parents 648b2ab3 9d181d36
...@@ -20,7 +20,7 @@ class ProjectFeature < ApplicationRecord ...@@ -20,7 +20,7 @@ class ProjectFeature < ApplicationRecord
container_registry container_registry
].freeze ].freeze
EXPORTABLE_FEATURES = (FEATURES - [:security_and_compliance]).freeze EXPORTABLE_FEATURES = (FEATURES - [:security_and_compliance, :pages]).freeze
set_available_features(FEATURES) set_available_features(FEATURES)
......
...@@ -16,7 +16,7 @@ Every project directly under the group namespace will be ...@@ -16,7 +16,7 @@ Every project directly under the group namespace will be
available to the user if they have access to them. For example: available to the user if they have access to them. For example:
- Public projects, in the group will be available to every signed-in user, if all enabled [project features](../project/settings/index.md#sharing-and-permissions) - Public projects, in the group will be available to every signed-in user, if all enabled [project features](../project/settings/index.md#sharing-and-permissions)
are set to **Everyone With Access**. except for GitLab Pages are set to **Everyone With Access**.
- Private projects will be available only if the user is a member of the project. - Private projects will be available only if the user is a member of the project.
Repository and database information that are copied over to each new project are Repository and database information that are copied over to each new project are
......
...@@ -62,7 +62,7 @@ GitLab administrators can ...@@ -62,7 +62,7 @@ GitLab administrators can
Within this section, you can configure the group where all the custom project Within this section, you can configure the group where all the custom project
templates are sourced. Every project _template_ directly under the group namespace is templates are sourced. Every project _template_ directly under the group namespace is
available to every signed-in user, if all enabled [project features](../project/settings/index.md#sharing-and-permissions) are set to **Everyone With Access**. available to every signed-in user, if all enabled [project features](../project/settings/index.md#sharing-and-permissions) except for GitLab Pages are set to **Everyone With Access**.
However, private projects will be available only if the user is a member of the project. However, private projects will be available only if the user is a member of the project.
......
...@@ -26,6 +26,12 @@ RSpec.describe CustomProjectTemplatesFinder do ...@@ -26,6 +26,12 @@ RSpec.describe CustomProjectTemplatesFinder do
expect(subject.execute).to be_empty expect(subject.execute).to be_empty
end end
it 'ignores pages permissions as they are not exported' do
project = create(:project, :internal, :metrics_dashboard_enabled, namespace: group, pages_access_level: ProjectFeature::PRIVATE)
expect(subject.execute).to eq([project])
end
context 'when the group has projects' do context 'when the group has projects' do
using RSpec::Parameterized::TableSyntax using RSpec::Parameterized::TableSyntax
...@@ -34,12 +40,12 @@ RSpec.describe CustomProjectTemplatesFinder do ...@@ -34,12 +40,12 @@ RSpec.describe CustomProjectTemplatesFinder do
let_it_be_with_reload(:public_project) { create :project, :metrics_dashboard_enabled, :public, namespace: group, name: 'public' } let_it_be_with_reload(:public_project) { create :project, :metrics_dashboard_enabled, :public, namespace: group, name: 'public' }
where(:issues_access_level, :minimal_user_access, :available_templates) do where(:issues_access_level, :minimal_user_access, :available_templates) do
:disabled | :no_access | %w[public] :disabled | :no_access | %w[public internal]
:disabled | :guest | %w[public internal private] :disabled | :guest | %w[public internal private]
:private | :guest | %w[public internal private] :private | :guest | %w[public internal private]
:private | :no_access | %w[] :private | :no_access | %w[]
:enabled | :guest | %w[public internal private] :enabled | :guest | %w[public internal private]
:enabled | :no_access | %w[public] :enabled | :no_access | %w[public internal]
end end
with_them do with_them do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment