Skip to content
代码片段 群组 项目
未验证 提交 57d2081e 编辑于 作者: Eduardo Bonet's avatar Eduardo Bonet 提交者: GitLab
浏览文件

Merge branch 'mk-fix-project-settings-bug' into 'master'

Add param filtering to avoid error while saving project settings

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/171369



Merged-by: default avatarEduardo Bonet <ebonet@gitlab.com>
Approved-by: default avatarEduardo Bonet <ebonet@gitlab.com>
Approved-by: default avatarTetiana Chupryna <tchupryna@gitlab.com>
Co-authored-by: default avatarMałgorzata Ksionek <mksionek@gitlab.com>
No related branches found
No related tags found
无相关合并请求
...@@ -92,7 +92,6 @@ def project_setting_attributes ...@@ -92,7 +92,6 @@ def project_setting_attributes
attributes = %i[ attributes = %i[
prevent_merge_without_jira_issue prevent_merge_without_jira_issue
cve_id_request_enabled cve_id_request_enabled
duo_features_enabled
product_analytics_data_collector_host product_analytics_data_collector_host
cube_api_base_url cube_api_base_url
cube_api_key cube_api_key
...@@ -107,6 +106,10 @@ def project_setting_attributes ...@@ -107,6 +106,10 @@ def project_setting_attributes
attributes << :spp_repository_pipeline_access attributes << :spp_repository_pipeline_access
end end
unless project&.project_setting&.duo_features_enabled_locked?
attributes << :duo_features_enabled
end
super + attributes super + attributes
end end
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
let_it_be(:user) { create(:user) } let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group) } let_it_be(:group) { create(:group) }
let_it_be(:project, reload: true) { create(:project) } let_it_be(:project, reload: true) { create(:project, namespace: group) }
let_it_be(:public_project) { create(:project, :public, :repository, namespace: group) } let_it_be(:public_project) { create(:project, :public, :repository, namespace: group) }
...@@ -391,24 +391,47 @@ ...@@ -391,24 +391,47 @@
expect(project.project_setting.cve_id_request_enabled).to eq(true) expect(project.project_setting.cve_id_request_enabled).to eq(true)
end end
it 'updates duo_features_enabled' do context 'when enabling duo features' do
project.project_setting.duo_features_enabled = false let(:params) { { project_setting_attributes: { duo_features_enabled: true } } }
project.project_setting.save!
params = { let(:request) do
project_setting_attributes: { put :update, params: { namespace_id: project.namespace, id: project, project: params }
duo_features_enabled: true end
}
} it 'updates duo_features_enabled' do
put :update, project.project_setting.duo_features_enabled = false
params: { project.project_setting.save!
namespace_id: project.namespace,
id: project,
project: params
}
project.reload
expect(project.project_setting.duo_features_enabled).to eq(true) request
expect(project.reload.project_setting.duo_features_enabled).to eq(true)
end
context 'when duo features are locked by the ancestor' do
before do
project.project_setting.duo_features_enabled = false
project.project_setting.save!
project.namespace.namespace_settings.lock_duo_features_enabled = true
project.namespace.namespace_settings.duo_features_enabled = false
project.namespace.namespace_settings.save!
end
it 'does not update duo feature' do
expect { request }.not_to change { project.reload.project_setting.duo_features_enabled }.from(false)
end
context 'with more params passed' do
let(:params) do
{ project_setting_attributes: { duo_features_enabled: true }, description: 'Settings test' }
end
it 'does not update duo feature, but updates other attributes' do
expect { request }.not_to change { project.reload.project_setting.duo_features_enabled }.from(false)
expect(project.description).to eq('Settings test')
end
end
end
end end
context 'when merge_pipelines_enabled param is specified' do context 'when merge_pipelines_enabled param is specified' do
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册