feat: add workspace validation to tool ID checks in serializers
This commit is contained in:
parent
8aa2c1437c
commit
8465ac67f0
@ -288,6 +288,15 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
id = serializers.UUIDField(required=True, label=_('tool id'))
|
id = serializers.UUIDField(required=True, label=_('tool id'))
|
||||||
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
|
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
|
||||||
|
|
||||||
|
def is_valid(self, *, raise_exception=False):
|
||||||
|
super().is_valid(raise_exception=True)
|
||||||
|
workspace_id = self.data.get('workspace_id')
|
||||||
|
query_set = QuerySet(Tool).filter(id=self.data.get('id'))
|
||||||
|
if workspace_id:
|
||||||
|
query_set = query_set.filter(workspace_id=workspace_id)
|
||||||
|
if not query_set.exists():
|
||||||
|
raise AppApiException(500, _('Tool id does not exist'))
|
||||||
|
|
||||||
def edit(self, instance, with_valid=True):
|
def edit(self, instance, with_valid=True):
|
||||||
if with_valid:
|
if with_valid:
|
||||||
self.is_valid(raise_exception=True)
|
self.is_valid(raise_exception=True)
|
||||||
@ -425,6 +434,15 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
user_id = serializers.UUIDField(required=True, label=_("User ID"))
|
user_id = serializers.UUIDField(required=True, label=_("User ID"))
|
||||||
image = UploadedImageField(required=True, label=_("picture"))
|
image = UploadedImageField(required=True, label=_("picture"))
|
||||||
|
|
||||||
|
def is_valid(self, *, raise_exception=False):
|
||||||
|
super().is_valid(raise_exception=True)
|
||||||
|
workspace_id = self.data.get('workspace_id')
|
||||||
|
query_set = QuerySet(Tool).filter(id=self.data.get('id'))
|
||||||
|
if workspace_id:
|
||||||
|
query_set = query_set.filter(workspace_id=workspace_id)
|
||||||
|
if not query_set.exists():
|
||||||
|
raise AppApiException(500, _('Tool id does not exist'))
|
||||||
|
|
||||||
def edit(self, with_valid=True):
|
def edit(self, with_valid=True):
|
||||||
if with_valid:
|
if with_valid:
|
||||||
self.is_valid(raise_exception=True)
|
self.is_valid(raise_exception=True)
|
||||||
@ -480,6 +498,15 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
|
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
|
||||||
tool_id = serializers.UUIDField(required=True, label=_("tool id"))
|
tool_id = serializers.UUIDField(required=True, label=_("tool id"))
|
||||||
|
|
||||||
|
def is_valid(self, *, raise_exception=False):
|
||||||
|
super().is_valid(raise_exception=True)
|
||||||
|
workspace_id = self.data.get('workspace_id')
|
||||||
|
query_set = QuerySet(Tool).filter(id=self.data.get('tool_id'))
|
||||||
|
if workspace_id:
|
||||||
|
query_set = query_set.filter(workspace_id=workspace_id)
|
||||||
|
if not query_set.exists():
|
||||||
|
raise AppApiException(500, _('Tool id does not exist'))
|
||||||
|
|
||||||
def add(self, instance, with_valid=True):
|
def add(self, instance, with_valid=True):
|
||||||
if with_valid:
|
if with_valid:
|
||||||
self.is_valid(raise_exception=True)
|
self.is_valid(raise_exception=True)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user