1- from typing import Any , override
1+ from typing import Any
22
33from nonebot .adapters .onebot .v11 import MessageEvent
44from nonebot .matcher import Matcher
55from nonebot .params import Depends
6+ from typing_extensions import override
67
78from ..API .admin import is_lp_admin
89from ..command_manager import command
1516class PermissionOperation (PermissionHandler ):
1617 @override
1718 async def execute (
18- self , group : str , operation : str , node : str , value : str
19+ self , id : str , operation : str , target : str , value : str
1920 ) -> tuple [str , dict [str , Any ]]:
20- permission_group_data = data_manager .get_permission_group_data (group , new = True )
21+ permission_group_data = data_manager .get_permission_group_data (id , new = True )
2122 if permission_group_data is None :
22- return f"❌ 权限组{ group } 不存在" , {}
23+ return f"❌ 权限组{ id } 不存在" , {}
2324 user_perm = Permissions (permission_group_data .permissions )
2425 msg_str = ""
2526 match operation :
2627 case "del" :
27- user_perm .del_permission (node )
28- msg_str = f"✅ 已删除权限节点 { node } "
28+ user_perm .del_permission (target )
29+ msg_str = f"✅ 已删除权限节点 { target } "
2930 case "set" :
3031 if value .lower () not in ("true" , "false" ):
3132 return "❌ 值必须是 true/false" , permission_group_data .model_dump ()
32- user_perm .set_permission (node , value == "true" , False )
33- msg_str = f"✅ 已设置 { node } : { value } "
33+ user_perm .set_permission (target , value == "true" , False )
34+ msg_str = f"✅ 已设置 { target } : { value } "
3435 case "check" :
3536 msg_str = (
3637 "✅ 持有该权限"
37- if user_perm .check_permission (node )
38+ if user_perm .check_permission (target )
3839 else "❌ 未持有该权限"
3940 )
4041 case "list" :
@@ -47,10 +48,10 @@ async def execute(
4748class ParentGroupHandler (PermissionHandler ):
4849 @override
4950 async def execute (
50- self , group : str , operation : str , target_group : str , _ : str
51+ self , id : str , operation : str , target : str , value : str
5152 ) -> tuple [str , dict [str , Any ]]:
52- permission_group_data = data_manager .get_permission_group_data (group )
53- perm_group_data = data_manager .get_permission_group_data (target_group , False )
53+ permission_group_data = data_manager .get_permission_group_data (id )
54+ perm_group_data = data_manager .get_permission_group_data (target , False )
5455 if perm_group_data is None :
5556 return "❌ 权限组不存在" , {}
5657 string_msg = "❌ 操作失败"
@@ -62,10 +63,12 @@ async def execute(
6263 self ._modify_inheritance (
6364 permission_group_data , perm_group_data , operation
6465 )
65- string_msg = f"✅ 已{ '添加' if operation == 'add' else '移除' } 继承组 { target_group } "
66+ string_msg = (
67+ f"✅ 已{ '添加' if operation == 'add' else '移除' } 继承组 { target } "
68+ )
6669 case "set" :
6770 permission_group_data .permissions = perm_group_data .permissions .copy ()
68- string_msg = f"✅ 已覆盖为组 { target_group } 的权限"
71+ string_msg = f"✅ 已覆盖为组 { target } 的权限"
6972 case _:
7073 string_msg = "❌ 不支持的操作类型"
7174 return string_msg , permission_group_data .model_dump ()
@@ -85,42 +88,48 @@ def _modify_inheritance(
8588 elif operation == "del" and user_perms .check_permission (node ):
8689 user_perms .del_permission (node )
8790
91+
8892class PermissionGroupHandler (PermissionHandler ):
8993 async def execute (
90- self , group : str , operation : str , * _
94+ self , id : str , operation : str , target : str , value : str
9195 ) -> tuple [str , dict [str , Any ]]:
9296 if operation == "create" :
93- if data_manager .get_permission_group_data (group ) is not None :
97+ if data_manager .get_permission_group_data (id ) is not None :
9498 return "❌ 权限组已存在" , {}
95- data_manager .get_permission_group_data (group , True )
99+ data_manager .get_permission_group_data (id , True )
96100 return "✅ 权限组创建成功" , {}
97101 elif operation == "remove" :
98- if data_manager .get_permission_group_data (group ) is None :
102+ if data_manager .get_permission_group_data (id ) is None :
99103 return "❌ 权限组不存在" , {}
100- data_manager .remove_permission_group (group )
104+ data_manager .remove_permission_group (id )
101105 return "✅ 权限组删除成功" , {}
102106 return "❌ 操作错误" , {}
103107
108+
104109def get_handler (
105110 action_type : str ,
106111) -> PermissionHandler | None :
107112 handlers = {
108113 "permission" : PermissionOperation (),
109114 "parent" : ParentGroupHandler (),
110- "to" :PermissionGroupHandler (),
115+ "to" : PermissionGroupHandler (),
111116 }
112117 return handlers .get (action_type )
113118
114119
115120# 运行进入点
116- @command .command ("user" , permission = is_lp_admin ).handle ()
121+ @command .command (
122+ "perm_group" ,
123+ permission = is_lp_admin ,
124+ ).handle ()
117125async def lp_user (
118126 event : MessageEvent ,
119127 matcher : Matcher ,
120128 params : tuple [str , str , str , str , str ] = Depends (parse_command ),
121129):
122130 user_id , action_type , operation , target , value = params
123131 handler = get_handler (action_type )
132+ data = None
124133 if handler is None :
125134 await matcher .finish ("❌ 未知操作类型" )
126135 else :
0 commit comments