Add service instance permissions

This commit is contained in:
Tobias Kunze 2025-04-04 09:00:20 +02:00
parent e441005061
commit 7da4b77267

View file

@ -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}/"