更改权限

This commit is contained in:
雅诺狐
2025-09-21 13:09:29 +08:00
committed by Windpicker-owo
parent 28be81583e
commit 4091a4eadf
8 changed files with 235 additions and 660 deletions

View File

@@ -39,7 +39,7 @@ class ReadFeedAction(BaseAction):
user_id = self.chat_stream.user_info.user_id
# 使用权限API检查用户是否有阅读说说的权限
return permission_api.check_permission(platform, user_id, "plugin.maizone.read_feed")
return await permission_api.check_permission(platform, user_id, "plugin.maizone.read_feed")
async def execute(self) -> Tuple[bool, str]:
"""

View File

@@ -39,7 +39,7 @@ class SendFeedAction(BaseAction):
user_id = self.chat_stream.user_info.user_id
# 使用权限API检查用户是否有发送说说的权限
return permission_api.check_permission(platform, user_id, "plugin.maizone.send_feed")
return await permission_api.check_permission(platform, user_id, "plugin.maizone.send_feed")
async def execute(self) -> Tuple[bool, str]:
"""

View File

@@ -87,11 +87,11 @@ class MaiZoneRefactoredPlugin(BasePlugin):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# 注册权限节点
permission_api.register_permission_node(
async def on_plugin_loaded(self):
await permission_api.register_permission_node(
"plugin.maizone.send_feed", "是否可以使用机器人发送QQ空间说说", "maiZone", False
)
permission_api.register_permission_node(
await permission_api.register_permission_node(
"plugin.maizone.read_feed", "是否可以使用机器人读取QQ空间说说", "maiZone", True
)
# 创建所有服务实例

View File

@@ -34,11 +34,13 @@ class PermissionCommand(PlusCommand):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# 注册权限节点
permission_api.register_permission_node(
async def on_plugin_loaded(self):
# 注册权限节点(使用显式前缀,避免再次自动补全)
await permission_api.register_permission_node(
"plugin.permission.manage", "权限管理:可以授权和撤销其他用户的权限", "permission_manager", False
)
permission_api.register_permission_node(
await permission_api.register_permission_node(
"plugin.permission.view", "权限查看:可以查看权限节点和用户权限信息", "permission_manager", True
)
@@ -179,7 +181,7 @@ class PermissionCommand(PlusCommand):
permission_node = args[1]
# 执行授权
success = permission_api.grant_permission(chat_stream.platform, user_id, permission_node)
success = await permission_api.grant_permission(chat_stream.platform, user_id, permission_node)
if success:
await self.send_text(f"✅ 已授权用户 {user_id} 权限节点 `{permission_node}`")
@@ -202,7 +204,7 @@ class PermissionCommand(PlusCommand):
permission_node = args[1]
# 执行撤销
success = permission_api.revoke_permission(chat_stream.platform, user_id, permission_node)
success = await permission_api.revoke_permission(chat_stream.platform, user_id, permission_node)
if success:
await self.send_text(f"✅ 已撤销用户 {user_id} 权限节点 `{permission_node}`")
@@ -225,10 +227,10 @@ class PermissionCommand(PlusCommand):
target_user_id = chat_stream.user_info.user_id
# 检查是否为Master用户
is_master = permission_api.is_master(chat_stream.platform, target_user_id)
is_master = await permission_api.is_master(chat_stream.platform, target_user_id)
# 获取用户权限
permissions = permission_api.get_user_permissions(chat_stream.platform, target_user_id)
permissions = await permission_api.get_user_permissions(chat_stream.platform, target_user_id)
if is_master:
response = f"👑 用户 `{target_user_id}` 是Master用户拥有所有权限"
@@ -257,8 +259,8 @@ class PermissionCommand(PlusCommand):
permission_node = args[1]
# 检查权限
has_permission = permission_api.check_permission(chat_stream.platform, user_id, permission_node)
is_master = permission_api.is_master(chat_stream.platform, user_id)
has_permission = await permission_api.check_permission(chat_stream.platform, user_id, permission_node)
is_master = await permission_api.is_master(chat_stream.platform, user_id)
if has_permission:
if is_master:
@@ -277,11 +279,11 @@ class PermissionCommand(PlusCommand):
if plugin_name:
# 获取指定插件的权限节点
nodes = permission_api.get_plugin_permission_nodes(plugin_name)
nodes = await permission_api.get_plugin_permission_nodes(plugin_name)
title = f"📋 插件 {plugin_name} 的权限节点:"
else:
# 获取所有权限节点
nodes = permission_api.get_all_permission_nodes()
nodes = await permission_api.get_all_permission_nodes()
title = "📋 所有权限节点:"
if not nodes:
@@ -307,7 +309,7 @@ class PermissionCommand(PlusCommand):
async def _list_all_nodes_with_description(self, chat_stream):
"""列出所有插件的权限节点(带详细描述)"""
# 获取所有权限节点
all_nodes = permission_api.get_all_permission_nodes()
all_nodes = await permission_api.get_all_permission_nodes()
if not all_nodes:
response = "📋 系统中没有任何权限节点"

View File

@@ -548,11 +548,13 @@ class PluginManagementPlugin(BasePlugin):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# 注册权限节点
permission_api.register_permission_node(
"plugin.management.admin",
"插件管理:可以管理插件和组件的加载、卸载、启用、禁用等操作",
"plugin_management",
False,
async def on_plugin_loaded(self):
await permission_api.register_permission_node(
"plugin.management.admin",
"插件管理:可以管理插件和组件的加载、卸载、启用、禁用等操作",
"plugin_management",
False,
)
def get_plugin_components(self) -> List[Tuple[PlusCommandInfo, Type[PlusCommand]]]: