Procházet zdrojové kódy

fix: check webhook key of Wecom tool in valid UUID form and fix typo (#2719)

tags/0.5.9
Bowen Liang před 1 rokem
rodič
revize
0ac250a035
Žádný účet není propojen s e-mailovou adresou tvůrce revize

+ 5
- 3
api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.py Zobrazit soubor



from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.entities.tool_entities import ToolInvokeMessage
from core.tools.tool.builtin_tool import BuiltinTool from core.tools.tool.builtin_tool import BuiltinTool
from core.tools.utils.uuid_utils import is_valid_uuid




class WecomRepositoriesTool(BuiltinTool):
class WecomGroupBotTool(BuiltinTool):
def _invoke(self, user_id: str, tool_parameters: dict[str, Any] def _invoke(self, user_id: str, tool_parameters: dict[str, Any]
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]: ) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
""" """
return self.create_text_message('Invalid parameter content') return self.create_text_message('Invalid parameter content')


hook_key = tool_parameters.get('hook_key', '') hook_key = tool_parameters.get('hook_key', '')
if not hook_key:
return self.create_text_message('Invalid parameter hook_key')
if not is_valid_uuid(hook_key):
return self.create_text_message(
f'Invalid parameter hook_key ${hook_key}, not a valid UUID')


msgtype = 'text' msgtype = 'text'
api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send' api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send'

+ 2
- 2
api/core/tools/provider/builtin/wecom/wecom.py Zobrazit soubor

from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomRepositoriesTool
from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomGroupBotTool
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController




class WecomProvider(BuiltinToolProviderController): class WecomProvider(BuiltinToolProviderController):
def _validate_credentials(self, credentials: dict) -> None: def _validate_credentials(self, credentials: dict) -> None:
WecomRepositoriesTool()
WecomGroupBotTool()
pass pass

+ 9
- 0
api/core/tools/utils/uuid_utils.py Zobrazit soubor

import uuid


def is_valid_uuid(uuid_str: str) -> bool:
try:
uuid.UUID(uuid_str)
return True
except Exception:
return False

Načítá se…
Zrušit
Uložit