Skip to content

Commit 8465ac6

Browse files
committed
feat: add workspace validation to tool ID checks in serializers
1 parent 8aa2c14 commit 8465ac6

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

apps/tools/serializers/tool.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,15 @@ class Operate(serializers.Serializer):
288288
id = serializers.UUIDField(required=True, label=_('tool id'))
289289
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
290290

291+
def is_valid(self, *, raise_exception=False):
292+
super().is_valid(raise_exception=True)
293+
workspace_id = self.data.get('workspace_id')
294+
query_set = QuerySet(Tool).filter(id=self.data.get('id'))
295+
if workspace_id:
296+
query_set = query_set.filter(workspace_id=workspace_id)
297+
if not query_set.exists():
298+
raise AppApiException(500, _('Tool id does not exist'))
299+
291300
def edit(self, instance, with_valid=True):
292301
if with_valid:
293302
self.is_valid(raise_exception=True)
@@ -425,6 +434,15 @@ class IconOperate(serializers.Serializer):
425434
user_id = serializers.UUIDField(required=True, label=_("User ID"))
426435
image = UploadedImageField(required=True, label=_("picture"))
427436

437+
def is_valid(self, *, raise_exception=False):
438+
super().is_valid(raise_exception=True)
439+
workspace_id = self.data.get('workspace_id')
440+
query_set = QuerySet(Tool).filter(id=self.data.get('id'))
441+
if workspace_id:
442+
query_set = query_set.filter(workspace_id=workspace_id)
443+
if not query_set.exists():
444+
raise AppApiException(500, _('Tool id does not exist'))
445+
428446
def edit(self, with_valid=True):
429447
if with_valid:
430448
self.is_valid(raise_exception=True)
@@ -480,6 +498,15 @@ class AddInternalTool(serializers.Serializer):
480498
workspace_id = serializers.CharField(required=True, label=_("workspace id"))
481499
tool_id = serializers.UUIDField(required=True, label=_("tool id"))
482500

501+
def is_valid(self, *, raise_exception=False):
502+
super().is_valid(raise_exception=True)
503+
workspace_id = self.data.get('workspace_id')
504+
query_set = QuerySet(Tool).filter(id=self.data.get('tool_id'))
505+
if workspace_id:
506+
query_set = query_set.filter(workspace_id=workspace_id)
507+
if not query_set.exists():
508+
raise AppApiException(500, _('Tool id does not exist'))
509+
483510
def add(self, instance, with_valid=True):
484511
if with_valid:
485512
self.is_valid(raise_exception=True)

0 commit comments

Comments
 (0)