diff --git a/app/helpers/packages_helper.rb b/app/helpers/packages_helper.rb
index 887f63ce05df54a610e898b9a24e4576f05b4fa8..595bb69709f7a5ca3bd8fd0d86b3fda7d25bdd45 100644
--- a/app/helpers/packages_helper.rb
+++ b/app/helpers/packages_helper.rb
@@ -97,11 +97,11 @@ def cleanup_settings_data
     }
   end
 
-  def settings_data
+  def settings_data(project)
     cleanup_settings_data.merge(
-      show_container_registry_settings: show_container_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)
+      show_container_registry_settings: show_container_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)
     )
   end
 end
diff --git a/app/views/projects/settings/packages_and_registries/show.html.haml b/app/views/projects/settings/packages_and_registries/show.html.haml
index 6f38a3ace92a44fa6990ba1e93dac856634fe836..d6c2228a6c2ebdcd3118925448b285771500972e 100644
--- a/app/views/projects/settings/packages_and_registries/show.html.haml
+++ b/app/views/projects/settings/packages_and_registries/show.html.haml
@@ -2,4 +2,4 @@
 - page_title _('Packages and registries settings')
 - @force_desktop_expanded_sidebar = true
 
-#js-registry-settings{ data: settings_data }
+#js-registry-settings{ data: settings_data(@project) }
diff --git a/ee/app/helpers/ee/packages_helper.rb b/ee/app/helpers/ee/packages_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..c02539903de9efca8b53fa8ecfdc5684691404ae
--- /dev/null
+++ b/ee/app/helpers/ee/packages_helper.rb
@@ -0,0 +1,22 @@
+# 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
diff --git a/ee/spec/helpers/ee/packages_helper_spec.rb b/ee/spec/helpers/ee/packages_helper_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..5c627838652c16b446b1737f814d5decb8bf1c55
--- /dev/null
+++ b/ee/spec/helpers/ee/packages_helper_spec.rb
@@ -0,0 +1,80 @@
+# 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