From 78e42ec6647c6533c849c444ec312856cce0e0c4 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 11 Jan 2024 12:18:13 +1100 Subject: [PATCH] Show Connected Apps only to enterprise managers Super-admins also saw that tab but connecting an app doesn't work unless you are a manager of that enterprise. --- app/helpers/admin/enterprises_helper.rb | 3 ++- app/models/spree/ability.rb | 3 ++- spec/helpers/admin/enterprises_helper_spec.rb | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/helpers/admin/enterprises_helper.rb b/app/helpers/admin/enterprises_helper.rb index e6e6fdec0b..e78029c762 100644 --- a/app/helpers/admin/enterprises_helper.rb +++ b/app/helpers/admin/enterprises_helper.rb @@ -21,7 +21,8 @@ module Admin show_payment_methods = can?(:manage_payment_methods, enterprise) && is_shop show_enterprise_fees = can?(:manage_enterprise_fees, enterprise) && (is_shop || enterprise.is_primary_producer) - show_connected_apps = feature?(:connected_apps, spree_current_user, enterprise) + show_connected_apps = can?(:manage_connected_apps, enterprise) && + feature?(:connected_apps, spree_current_user, enterprise) build_enterprise_side_menu_items( is_shop:, diff --git a/app/models/spree/ability.rb b/app/models/spree/ability.rb index 37587a0111..f4d776bc02 100644 --- a/app/models/spree/ability.rb +++ b/app/models/spree/ability.rb @@ -147,7 +147,8 @@ module Spree end can [:manage_payment_methods, :manage_shipping_methods, - :manage_enterprise_fees], Enterprise do |enterprise| + :manage_enterprise_fees, + :manage_connected_apps], Enterprise do |enterprise| user.enterprises.include? enterprise end diff --git a/spec/helpers/admin/enterprises_helper_spec.rb b/spec/helpers/admin/enterprises_helper_spec.rb index 400822ee19..e7683a12b3 100644 --- a/spec/helpers/admin/enterprises_helper_spec.rb +++ b/spec/helpers/admin/enterprises_helper_spec.rb @@ -27,7 +27,8 @@ describe Admin::EnterprisesHelper, type: :helper do ] end - it "lists enabled features", feature: :connected_apps do + it "lists enabled features when allowed", feature: :connected_apps do + user.enterprises << enterprise expect(visible_items.pluck(:name)).to include "connected_apps" end end