Making permissions method managed_and_related_enterprise_with method more specific

This commit is contained in:
Rob Harrington
2015-05-06 12:03:52 +10:00
parent 7ffe0f042e
commit f0f7e0ee2f
2 changed files with 13 additions and 13 deletions

View File

@@ -5,14 +5,14 @@ module OpenFoodNetwork
end
def can_manage_complex_order_cycles?
managed_and_related_enterprises_with(:add_to_order_cycle).any? do |e|
managed_and_related_enterprises_granting(:add_to_order_cycle).any? do |e|
e.sells == 'any'
end
end
# Find enterprises that an admin is allowed to add to an order cycle
def order_cycle_enterprises
managed_and_related_enterprises_with :add_to_order_cycle
managed_and_related_enterprises_granting :add_to_order_cycle
end
def enterprises_managed_or_granting_add_to_order_cycle
@@ -20,17 +20,17 @@ module OpenFoodNetwork
if admin?
Enterprise.scoped
else
managed_and_related_enterprises_with :add_to_order_cycle
managed_and_related_enterprises_granting :add_to_order_cycle
end
end
# Find enterprises for which an admin is allowed to edit their profile
def editable_enterprises
managed_and_related_enterprises_with :edit_profile
managed_and_related_enterprises_granting :edit_profile
end
def variant_override_hubs
managed_and_related_enterprises_with(:add_to_order_cycle).is_hub
managed_and_related_enterprises_granting(:add_to_order_cycle).is_hub
end
def variant_override_producers
@@ -42,7 +42,7 @@ module OpenFoodNetwork
# override variants
# {hub1_id => [producer1_id, producer2_id, ...], ...}
def variant_override_enterprises_per_hub
hubs = managed_and_related_enterprises_with(:add_to_order_cycle).is_distributor
hubs = managed_and_related_enterprises_granting(:add_to_order_cycle).is_distributor
# Permissions granted by create_variant_overrides relationship from producer to hub
permissions = Hash[
@@ -117,7 +117,7 @@ module OpenFoodNetwork
end
def managed_product_enterprises
managed_and_related_enterprises_with :manage_products
managed_and_related_enterprises_granting :manage_products
end
def manages_one_enterprise?
@@ -131,7 +131,7 @@ module OpenFoodNetwork
@user.admin?
end
def managed_and_related_enterprises_with(permission)
def managed_and_related_enterprises_granting(permission)
managed_enterprise_ids = managed_enterprises.pluck :id
permitting_enterprise_ids = related_enterprises_with(permission).pluck :id

View File

@@ -13,7 +13,7 @@ module OpenFoodNetwork
it "returns managed and related enterprises with add_to_order_cycle permission" do
allow(user).to receive(:admin?) { false }
expect(permissions).to receive(:managed_and_related_enterprises_with).
expect(permissions).to receive(:managed_and_related_enterprises_granting).
with(:add_to_order_cycle).
and_return([e])
@@ -32,7 +32,7 @@ module OpenFoodNetwork
it "returns managed and related enterprises with edit_profile permission" do
permissions.
should_receive(:managed_and_related_enterprises_with).
should_receive(:managed_and_related_enterprises_granting).
with(:edit_profile).
and_return([e])
@@ -139,7 +139,7 @@ module OpenFoodNetwork
it "returns managed and related enterprises with manage_products permission" do
permissions.
should_receive(:managed_and_related_enterprises_with).
should_receive(:managed_and_related_enterprises_granting).
with(:manage_products).
and_return([e])
@@ -171,13 +171,13 @@ module OpenFoodNetwork
it "returns managed enterprises" do
permissions.should_receive(:managed_enterprises) { Enterprise.where(id: e1) }
permissions.send(:managed_and_related_enterprises_with, permission).should == [e1]
permissions.send(:managed_and_related_enterprises_granting, permission).should == [e1]
end
it "returns permitted enterprises" do
permissions.should_receive(:related_enterprises_with).with(permission).
and_return(Enterprise.where(id: e2))
permissions.send(:managed_and_related_enterprises_with, permission).should == [e2]
permissions.send(:managed_and_related_enterprises_granting, permission).should == [e2]
end
end