|
|
|
|
@ -16,14 +16,14 @@ class LocationPolicy
|
|
|
|
|
if location == Location |
|
|
|
|
user.data_coordinator? |
|
|
|
|
else |
|
|
|
|
user.data_coordinator? && user.organisation == scheme&.owning_organisation |
|
|
|
|
user.data_coordinator? && scheme_owned_by_user_org_or_stock_owner |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def update? |
|
|
|
|
return true if user.support? |
|
|
|
|
|
|
|
|
|
user.data_coordinator? && scheme&.owning_organisation == user.organisation |
|
|
|
|
user.data_coordinator? && scheme_owned_by_user_org_or_stock_owner |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
%w[ |
|
|
|
|
@ -51,7 +51,7 @@ class LocationPolicy
|
|
|
|
|
define_method method_name do |
|
|
|
|
return true if user.support? |
|
|
|
|
|
|
|
|
|
user.data_coordinator? && scheme&.owning_organisation == user.organisation |
|
|
|
|
user.data_coordinator? && scheme_owned_by_user_org_or_stock_owner |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
@ -62,7 +62,7 @@ class LocationPolicy
|
|
|
|
|
define_method method_name do |
|
|
|
|
return true if user.support? |
|
|
|
|
|
|
|
|
|
user.organisation.parent_organisations.exists?(scheme&.owning_organisation_id) || scheme&.owning_organisation == user.organisation |
|
|
|
|
scheme_owned_by_user_org_or_stock_owner |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
@ -71,4 +71,8 @@ private
|
|
|
|
|
def scheme |
|
|
|
|
location.scheme |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def scheme_owned_by_user_org_or_stock_owner |
|
|
|
|
scheme&.owning_organisation == user.organisation || user.organisation.stock_owners.exists?(scheme&.owning_organisation_id) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|