feat: conditionally validate MCP transport based on tool type
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run

--bug=1062394 --user=刘瑞斌 【工具】启用、禁用工具失败 https://www.tapd.cn/62980211/s/1780683
This commit is contained in:
CaptainB 2025-09-28 19:29:51 +08:00
parent 54aa6218e0
commit e443f31cc5

View File

@ -356,7 +356,8 @@ class ToolSerializer(serializers.Serializer):
ToolCreateRequest(data=instance).is_valid(raise_exception=True)
# 校验代码是否包括禁止的关键字
ToolExecutor().validate_banned_keywords(instance.get('code', ''))
ToolExecutor().validate_mcp_transport(instance.get('code', ''))
if instance.get('tool_type') == ToolType.MCP:
ToolExecutor().validate_mcp_transport(instance.get('code', ''))
tool_id = uuid.uuid7()
Tool(
@ -487,7 +488,8 @@ class ToolSerializer(serializers.Serializer):
ToolEditRequest(data=instance).is_valid(raise_exception=True)
# 校验代码是否包括禁止的关键字
ToolExecutor().validate_banned_keywords(instance.get('code', ''))
ToolExecutor().validate_mcp_transport(instance.get('code', ''))
if instance.get('tool_type') == ToolType.MCP:
ToolExecutor().validate_mcp_transport(instance.get('code', ''))
if not QuerySet(Tool).filter(id=self.data.get('id')).exists():
raise serializers.ValidationError(_('Tool not found'))