From 6dfc222ce07e0159c8d7e436d92462ee8714f82c Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Mon, 26 Jan 2026 17:38:35 +0800 Subject: [PATCH] fix: The resource-side trigger adds current resource validation. --- apps/trigger/serializers/task_source_trigger.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/trigger/serializers/task_source_trigger.py b/apps/trigger/serializers/task_source_trigger.py index 0e183164d4e..609cca348dd 100644 --- a/apps/trigger/serializers/task_source_trigger.py +++ b/apps/trigger/serializers/task_source_trigger.py @@ -53,6 +53,11 @@ def insert(self, instance, with_valid=True): self.is_valid(raise_exception=True) if not len(instance.get("trigger_task")) == 1: raise AppApiException(500, _('Trigger task number must be one')) + source_id = instance.get('source_id') + source_type = instance.get('source_type') + source_trigger_task = instance.get('trigger_task')[0] + if not (instance.get('source_id') == source_id and source_trigger_task.get('source_type') == source_type): + raise AppApiException(500, _('Incorrect trigger task')) return TriggerSerializer(data={ 'workspace_id': self.data.get('workspace_id'), @@ -135,11 +140,11 @@ def delete(self): source_id = self.data.get('source_id') source_type = self.data.get('source_type') - trigger = Trigger.objects.filter(workspace_id=workspace_id,id=trigger_id).first() + trigger = Trigger.objects.filter(workspace_id=workspace_id, id=trigger_id).first() if not trigger: raise AppApiException(404, _('Trigger not found')) delete_count = TriggerTask.objects.filter(trigger_id=trigger_id, source_id=source_id, - source_type=source_type).delete()[0] + source_type=source_type).delete()[0] if delete_count == 0: raise AppApiException(404, _('Task not found')) has_other_tasks = TriggerTask.objects.filter(trigger_id=trigger_id).exists() @@ -148,6 +153,7 @@ def delete(self): trigger.delete() return True + class TaskSourceTriggerListSerializer(serializers.Serializer): workspace_id = serializers.CharField(required=True, label=_('workspace id')) source_type = serializers.CharField(required=True, label=_('source type'))