UPDATE
This commit is contained in:
@@ -41,6 +41,7 @@ class RouteFeatureAccessMiddleware(MiddlewareMixin):
|
||||
"products",
|
||||
"sensors",
|
||||
"sensors__sensor_catalog",
|
||||
"sensors__device_catalogs",
|
||||
).get(farm_uuid=farm_uuid, owner=user)
|
||||
except FarmHub.DoesNotExist:
|
||||
return JsonResponse(
|
||||
|
||||
@@ -70,7 +70,7 @@ class AccessRule(models.Model):
|
||||
subscription_plans = models.ManyToManyField("SubscriptionPlan", related_name="access_rules", blank=True)
|
||||
farm_types = models.ManyToManyField("farm_hub.FarmType", related_name="access_rules", blank=True)
|
||||
products = models.ManyToManyField("farm_hub.Product", related_name="access_rules", blank=True)
|
||||
sensor_catalogs = models.ManyToManyField("device_hub.SensorCatalog", related_name="access_rules", blank=True)
|
||||
sensor_catalogs = models.ManyToManyField("device_hub.DeviceCatalog", related_name="access_rules", blank=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ class FeatureAccessPermission(BasePermission):
|
||||
"products",
|
||||
"sensors",
|
||||
"sensors__sensor_catalog",
|
||||
"sensors__device_catalogs",
|
||||
).get(farm_uuid=farm_uuid, owner=request.user)
|
||||
except FarmHub.DoesNotExist:
|
||||
self.message = f"Access to feature `{feature_code}` is denied."
|
||||
|
||||
@@ -109,16 +109,17 @@ def build_farm_access_profile(farm):
|
||||
"products",
|
||||
"sensors",
|
||||
"sensors__sensor_catalog",
|
||||
"sensors__device_catalogs",
|
||||
).get(pk=farm.pk)
|
||||
|
||||
subscription_plan = get_effective_subscription_plan(farm)
|
||||
product_ids = list(farm.products.values_list("id", flat=True))
|
||||
sensor_catalog_ids = list(
|
||||
farm.sensors.exclude(sensor_catalog__isnull=True).values_list("sensor_catalog_id", flat=True)
|
||||
)
|
||||
sensor_catalog_codes = set(
|
||||
farm.sensors.exclude(sensor_catalog__isnull=True).values_list("sensor_catalog__code", flat=True)
|
||||
)
|
||||
sensor_catalog_ids = set()
|
||||
sensor_catalog_codes = set()
|
||||
for sensor in farm.sensors.all():
|
||||
for catalog in sensor.get_device_catalogs():
|
||||
sensor_catalog_ids.add(catalog.id)
|
||||
sensor_catalog_codes.add(catalog.code)
|
||||
|
||||
features = {
|
||||
feature.code: {
|
||||
|
||||
@@ -31,6 +31,7 @@ class FarmFeatureAuthorizationView(APIView):
|
||||
"products",
|
||||
"sensors",
|
||||
"sensors__sensor_catalog",
|
||||
"sensors__device_catalogs",
|
||||
).get(
|
||||
farm_uuid=farm_uuid,
|
||||
owner=request.user,
|
||||
|
||||
Reference in New Issue
Block a user