fix(权限管理): 增强权限检查的类型安全并修复权限引用
修复权限检查中可能传入非Permission类型导致的错误,将echo插件的权限引用从MessageEvent.ADMIN迁移到Permission.ADMIN
This commit is contained in:
@@ -152,6 +152,12 @@ class PermissionManager(Singleton):
|
|||||||
检查用户是否具有指定权限级别
|
检查用户是否具有指定权限级别
|
||||||
"""
|
"""
|
||||||
user_permission = await self.get_user_permission(user_id)
|
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
|
return user_permission >= required_permission
|
||||||
|
|
||||||
async def get_all_user_permissions(self) -> Dict[str, str]:
|
async def get_all_user_permissions(self) -> Dict[str, str]:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ Echo 与交互插件
|
|||||||
from core.managers.command_manager import matcher
|
from core.managers.command_manager import matcher
|
||||||
from core.bot import Bot
|
from core.bot import Bot
|
||||||
from models.events.message import MessageEvent
|
from models.events.message import MessageEvent
|
||||||
|
from core.permission import Permission
|
||||||
|
|
||||||
__plugin_meta__ = {
|
__plugin_meta__ = {
|
||||||
"name": "echo",
|
"name": "echo",
|
||||||
@@ -13,7 +14,7 @@ __plugin_meta__ = {
|
|||||||
"usage": "/echo [内容] - 复读内容\n/赞我 - 让机器人给你点赞",
|
"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]):
|
async def handle_echo(bot: Bot, event: MessageEvent, args: list[str]):
|
||||||
"""
|
"""
|
||||||
处理 echo 指令,原样回复用户输入的内容
|
处理 echo 指令,原样回复用户输入的内容
|
||||||
|
|||||||
Reference in New Issue
Block a user