Skip to content
代码片段 群组 项目
提交 f55c4c5b 编辑于 作者: David Fernandez's avatar David Fernandez
浏览文件

Merge branch '410726-dependency-proxy-for-maven-frontend-changes' into 'master'

No related branches found
No related tags found
无相关合并请求
...@@ -97,11 +97,11 @@ def cleanup_settings_data ...@@ -97,11 +97,11 @@ def cleanup_settings_data
} }
end end
def settings_data def settings_data(project)
cleanup_settings_data.merge( cleanup_settings_data.merge(
show_container_registry_settings: show_container_registry_settings(@project).to_s, show_container_registry_settings: show_container_registry_settings(project).to_s,
show_package_registry_settings: show_package_registry_settings(@project).to_s, show_package_registry_settings: show_package_registry_settings(project).to_s,
cleanup_settings_path: cleanup_image_tags_project_settings_packages_and_registries_path(@project) cleanup_settings_path: cleanup_image_tags_project_settings_packages_and_registries_path(project)
) )
end end
end end
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
- page_title _('Packages and registries settings') - page_title _('Packages and registries settings')
- @force_desktop_expanded_sidebar = true - @force_desktop_expanded_sidebar = true
#js-registry-settings{ data: settings_data } #js-registry-settings{ data: settings_data(@project) }
# frozen_string_literal: true
module EE
module PackagesHelper
extend ::Gitlab::Utils::Override
override :settings_data
def settings_data(project)
super.merge(
show_dependency_proxy_settings: show_dependency_proxy_settings?(project).to_s
)
end
private
def show_dependency_proxy_settings?(project)
::Feature.enabled?(:packages_dependency_proxy_maven, project) &&
Ability.allowed?(current_user, :admin_dependency_proxy_packages_settings,
project.dependency_proxy_packages_setting)
end
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe EE::PackagesHelper, feature_category: :package_registry do
let_it_be(:project) { build_stubbed(:project) }
let_it_be(:user) { project.creator }
describe '#settings_data' do
before do
allow(helper).to receive(:current_user).and_return(user)
instance_variable_set(:@project, project)
allow(Ability).to receive(:allowed?).and_call_original
end
subject(:settings_data) { helper.settings_data(project) }
context 'when the current user cannot admin dependency proxy packages settings' do
before do
allow(Ability).to receive(:allowed?).with(user, :admin_dependency_proxy_packages_settings,
project.dependency_proxy_packages_setting)
.and_return(false)
end
it 'returns the settings data' do
expect(settings_data).to include(
show_dependency_proxy_settings: 'false'
)
end
end
context 'when the current user can admin dependency proxy packages settings' do
before do
allow(Ability).to receive(:allowed?).with(user, :admin_dependency_proxy_packages_settings,
project.dependency_proxy_packages_setting)
.and_return(true)
end
it 'returns the settings data with show_dependency_proxy_settings set to true' do
expect(settings_data).to include(
show_dependency_proxy_settings: 'true'
)
end
end
context 'with feature flag disabled' do
before do
stub_feature_flags(packages_dependency_proxy_maven: false)
end
context 'when the current user cannot admin dependency proxy packages settings' do
before do
allow(Ability).to receive(:allowed?).with(user, :admin_dependency_proxy_packages_settings,
project.dependency_proxy_packages_setting)
.and_return(false)
end
it 'returns the settings data' do
expect(settings_data).to include(
show_dependency_proxy_settings: 'false'
)
end
end
context 'when the current user can admin dependency proxy packages settings' do
before do
allow(Ability).to receive(:allowed?).with(user, :admin_dependency_proxy_packages_settings,
project.dependency_proxy_packages_setting)
.and_return(true)
end
it 'returns the settings data with show_dependency_proxy_settings set to true' do
expect(settings_data).to include(
show_dependency_proxy_settings: 'false'
)
end
end
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册