from .permission import PermissionManager, PermissionStatus from .group_permission import GroupPermissionManager def test_permission_system(): # 获取权限管理器实例 perm_manager = PermissionManager() group_manager = GroupPermissionManager() # 测试注册权限 print("测试注册权限...") robot_perm = perm_manager.register_permission( "ROBOT", "群机器人", "🔧 群机器人 [总开关]" ) print(f"注册权限: {robot_perm.key} = {robot_perm.value} - {robot_perm.description}") # 测试重复注册 print("\n测试重复注册...") same_perm = perm_manager.register_permission( "ROBOT", "群机器人", "🔧 群机器人 [总开关]" ) print(f"重复注册结果: {same_perm.key} = {same_perm.value} - {same_perm.description}") # 测试注册新权限 print("\n测试注册新权限...") news_perm = perm_manager.register_permission( "NEWS", "新闻播报", "📰 每日新闻播报", plugin_id="news_plugin" ) print(f"新权限: {news_perm.key} = {news_perm.value} - {news_perm.description}") # 测试获取权限 print("\n测试获取权限...") retrieved_perm = perm_manager.get_permission("ROBOT") print(f"获取权限: {retrieved_perm.key} = {retrieved_perm.value} - {retrieved_perm.description}") # 测试通过值获取权限 print("\n测试通过值获取权限...") perm_by_value = perm_manager.get_permission_by_value(1) print(f"通过值获取: {perm_by_value.key} = {perm_by_value.value} - {perm_by_value.description}") # 测试获取所有权限 print("\n测试获取所有权限...") all_perms = perm_manager.get_all_permissions() print("所有权限:") for perm in all_perms: print(f" {perm.key} = {perm.value} - {perm.description}") # 测试获取插件权限 print("\n测试获取插件权限...") plugin_perms = perm_manager.get_plugin_permissions("news_plugin") print("插件权限:") for perm in plugin_perms: print(f" {perm.key} = {perm.value} - {perm.description}") # 测试群组权限 print("\n测试群组权限...") group_id = "test_group" # 添加群组 group_manager.add_group(group_id) print(f"添加群组: {group_id}") # 设置群组权限 group_manager.set_group_permission(group_id, robot_perm, PermissionStatus.ENABLED) print(f"设置权限: {group_id} - {robot_perm.key} = {PermissionStatus.ENABLED.value}") # 获取群组权限 status = group_manager.get_group_permission(group_id, robot_perm) print(f"获取权限状态: {group_id} - {robot_perm.key} = {status.value}") # 检查权限 result = group_manager.check_permission(group_id, robot_perm) print(f"检查权限: {group_id} - {robot_perm.key} = {result}") # 列出群组权限 print("\n列出群组权限...") perms = group_manager.list_group_permissions(group_id) print(f"群组 {group_id} 的权限:") for perm, status in perms.items(): print(f" {perm.key} = {status.value}") # 移除群组 print("\n测试移除群组...") if group_manager.remove_group(group_id): print(f"成功移除群组: {group_id}") else: print(f"移除群组失败: {group_id}") if __name__ == '__main__': test_permission_system()