98 lines
3.3 KiB
Python
98 lines
3.3 KiB
Python
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() |