diff --git a/core/managers/permission_manager.py b/core/managers/permission_manager.py index fa5f4ce..7fa2910 100644 --- a/core/managers/permission_manager.py +++ b/core/managers/permission_manager.py @@ -152,6 +152,12 @@ class PermissionManager(Singleton): 检查用户是否具有指定权限级别 """ user_permission = await self.get_user_permission(user_id) + + # 增强类型检查,防止将property对象等错误类型传递进来 + if not isinstance(required_permission, Permission): + logger.error(f"权限检查失败:required_permission 不是 Permission 枚举类型,而是 {type(required_permission).__name__}") + return False + return user_permission >= required_permission async def get_all_user_permissions(self) -> Dict[str, str]: diff --git a/plugins/echo.py b/plugins/echo.py index 6acbc11..d017712 100644 --- a/plugins/echo.py +++ b/plugins/echo.py @@ -6,6 +6,7 @@ Echo 与交互插件 from core.managers.command_manager import matcher from core.bot import Bot from models.events.message import MessageEvent +from core.permission import Permission __plugin_meta__ = { "name": "echo", @@ -13,7 +14,7 @@ __plugin_meta__ = { "usage": "/echo [内容] - 复读内容\n/赞我 - 让机器人给你点赞", } -@matcher.command("echo",permission=MessageEvent.ADMIN) +@matcher.command("echo", permission=Permission.ADMIN) async def handle_echo(bot: Bot, event: MessageEvent, args: list[str]): """ 处理 echo 指令,原样回复用户输入的内容