From 7da4b7726731732de4828ea9021d018431d2d692 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Fri, 4 Apr 2025 09:00:20 +0200 Subject: [PATCH] Add service instance permissions --- src/servala/core/models/service.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py index 41cc896..b2d56e8 100644 --- a/src/servala/core/models/service.py +++ b/src/servala/core/models/service.py @@ -1,6 +1,7 @@ import json import kubernetes +import rules import urlman from django.conf import settings from django.core.cache import cache @@ -12,6 +13,7 @@ from encrypted_fields.fields import EncryptedJSONField from kubernetes import client, config from kubernetes.client.rest import ApiException +from servala.core import rules as perms from servala.core.models.mixins import ServalaModelMixin from servala.core.validators import kubernetes_name_validator @@ -486,6 +488,12 @@ class ServiceInstance(ServalaModelMixin, models.Model): # Names are unique per de-facto namespace, which is defined by the # Organization + ServiceDefinition (group, version) + the ControlPlane. unique_together = [("name", "organization", "context")] + rules_permissions = { + "view": rules.is_staff | perms.is_organization_member, + "change": rules.is_staff | perms.is_organization_member, + "delete": rules.is_staff | perms.is_organization_admin, + "add": rules.is_authenticated, + } class urls(urlman.Urls): base = "{self.organization.urls.instances}{self.name}/"