From fd32152e88e0cc15ab06988ee98f325bc8e10ad2 Mon Sep 17 00:00:00 2001 From: Bing Xie Date: Fri, 26 Aug 2016 15:36:51 +1000 Subject: [PATCH] Search customers in enterprises --- .../spree/admin/search_controller_decorator.rb | 12 ++++++++---- app/models/spree/ability_decorator.rb | 2 +- spec/models/spree/ability_spec.rb | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/controllers/spree/admin/search_controller_decorator.rb b/app/controllers/spree/admin/search_controller_decorator.rb index 6c5942934e..664d304757 100644 --- a/app/controllers/spree/admin/search_controller_decorator.rb +++ b/app/controllers/spree/admin/search_controller_decorator.rb @@ -16,10 +16,14 @@ Spree::Admin::SearchController.class_eval do render :users end + def users_with_customers_ams + enterprise_ids = spree_current_user.enterprises.map &:id - def users_with_ams - users_without_ams - render json: @users, each_serializer: Api::Admin::UserSerializer + customers = Customer.ransack({m: 'or', email_start: params[:q], name_start: params[:q]}) + .result(distinct: true) + .where(enterprise_id: enterprise_ids) + + render json: customers, each_serializer: Api::Admin::CustomerSerializer end - alias_method_chain :users, :ams + alias_method_chain :users, :customers_ams end diff --git a/app/models/spree/ability_decorator.rb b/app/models/spree/ability_decorator.rb index 2936a47d41..3f5b2f11b4 100644 --- a/app/models/spree/ability_decorator.rb +++ b/app/models/spree/ability_decorator.rb @@ -93,7 +93,7 @@ class AbilityDecorator user.enterprises.include? enterprise_fee.enterprise end - can [:admin, :known_users], :search + can [:admin, :known_users, :users], :search can [:admin, :show], :account diff --git a/spec/models/spree/ability_spec.rb b/spec/models/spree/ability_spec.rb index 4af3d233b1..88315309b4 100644 --- a/spec/models/spree/ability_spec.rb +++ b/spec/models/spree/ability_spec.rb @@ -498,7 +498,7 @@ module Spree end it "should have the ability to search for users which share management of its enterprises" do - should have_ability([:admin, :known_users], for: :search) + should have_ability([:admin, :known_users, :users], for: :search) should_not have_ability([:users], for: :search) end end