mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Enterprise index action load enterprise_set for super admin
This commit is contained in:
@@ -2,7 +2,7 @@ require 'open_food_network/referer_parser'
|
||||
|
||||
module Admin
|
||||
class EnterprisesController < ResourceController
|
||||
# before_filter :load_enterprise_set, :only => :index
|
||||
before_filter :load_enterprise_set, :only => :index
|
||||
before_filter :load_countries, :except => [:index, :register, :check_permalink]
|
||||
before_filter :load_methods_and_fees, :only => [:new, :edit, :update, :create]
|
||||
before_filter :load_groups, :only => [:new, :edit, :update, :create]
|
||||
@@ -125,7 +125,7 @@ module Admin
|
||||
private
|
||||
|
||||
def load_enterprise_set
|
||||
@enterprise_set = EnterpriseSet.new collection
|
||||
@enterprise_set = EnterpriseSet.new(collection) if spree_current_user.admin?
|
||||
end
|
||||
|
||||
def load_countries
|
||||
@@ -140,8 +140,15 @@ module Admin
|
||||
order_cycle = OrderCycle.new(coordinator: coordinator) if order_cycle.nil? && coordinator.present?
|
||||
return OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, order_cycle).visible_enterprises
|
||||
when :index
|
||||
return Enterprise.where("1=0") unless json_request?
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).editable_enterprises
|
||||
if spree_current_user.admin?
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).
|
||||
editable_enterprises.
|
||||
order('is_primary_producer ASC, name')
|
||||
elsif json_request?
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).editable_enterprises
|
||||
else
|
||||
Enterprise.where("1=0") unless json_request?
|
||||
end
|
||||
else
|
||||
# TODO was ordered with is_distributor DESC as well, not sure why or how we want to sort this now
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).
|
||||
|
||||
@@ -516,27 +516,55 @@ module Admin
|
||||
end
|
||||
|
||||
describe "index" do
|
||||
let!(:user) { create_enterprise_user(enterprise_limit: 10) }
|
||||
let!(:enterprise1) { create(:enterprise, sells: 'any', owner: user) }
|
||||
let!(:enterprise2) { create(:enterprise, sells: 'own', owner: user) }
|
||||
let!(:enterprise3) { create(:enterprise, sells: 'any', owner: create_enterprise_user ) }
|
||||
context "as super admin" do
|
||||
let(:super_admin) { create(:admin_user) }
|
||||
let!(:user) { create_enterprise_user(enterprise_limit: 10) }
|
||||
let!(:enterprise1) { create(:enterprise, sells: 'any', owner: user) }
|
||||
let!(:enterprise2) { create(:enterprise, sells: 'own', owner: user) }
|
||||
let!(:enterprise3) { create(:enterprise, sells: 'any', owner: create_enterprise_user ) }
|
||||
|
||||
before do
|
||||
controller.stub spree_current_user: user
|
||||
end
|
||||
before do
|
||||
controller.stub spree_current_user: super_admin
|
||||
end
|
||||
|
||||
context "html" do
|
||||
it "returns an empty @collection" do
|
||||
spree_get :index, format: :html
|
||||
expect(assigns(:collection)).to eq []
|
||||
context "html" do
|
||||
it "returns all enterprises" do
|
||||
spree_get :index, format: :html
|
||||
expect(assigns(:collection)).to include enterprise1, enterprise2, enterprise3
|
||||
end
|
||||
end
|
||||
|
||||
context "json" do
|
||||
it "returns all enterprises" do
|
||||
spree_get :index, format: :json
|
||||
expect(assigns(:collection)).to include enterprise1, enterprise2, enterprise3
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "json" do
|
||||
it "scopes @collection to enterprises editable by the user" do
|
||||
spree_get :index, format: :json
|
||||
expect(assigns(:collection)).to include enterprise1, enterprise2
|
||||
expect(assigns(:collection)).to_not include enterprise3
|
||||
context "as an enterprise user" do
|
||||
let!(:user) { create_enterprise_user(enterprise_limit: 10) }
|
||||
let!(:enterprise1) { create(:enterprise, sells: 'any', owner: user) }
|
||||
let!(:enterprise2) { create(:enterprise, sells: 'own', owner: user) }
|
||||
let!(:enterprise3) { create(:enterprise, sells: 'any', owner: create_enterprise_user ) }
|
||||
|
||||
before do
|
||||
controller.stub spree_current_user: user
|
||||
end
|
||||
|
||||
context "html" do
|
||||
it "returns an empty @collection" do
|
||||
spree_get :index, format: :html
|
||||
expect(assigns(:collection)).to eq []
|
||||
end
|
||||
end
|
||||
|
||||
context "json" do
|
||||
it "scopes @collection to enterprises editable by the user" do
|
||||
spree_get :index, format: :json
|
||||
expect(assigns(:collection)).to include enterprise1, enterprise2
|
||||
expect(assigns(:collection)).to_not include enterprise3
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user