app/controllers/spree/admin/products_controller_decorator.rb
Spree::Admin::ProductsController.class_eval do
before_action :get_suppliers, only: %i[edit update]
before_action :supplier_collection, only: [:index]
private
def get_suppliers
@suppliers = Spree::Supplier.order(:name)
end
# Scopes the collection to the Supplier.
def supplier_collection
if try_spree_current_user && !try_spree_current_user.admin? && try_spree_current_user.supplier?
@collection = @collection.joins(:suppliers).where('spree_suppliers.id = ?', try_spree_current_user.supplier_id)
end
end
end