#!/usr/bin/env node /** * 权限中间件修复测试脚本 * 用于验证权限匹配逻辑是否正确 */ import { UserEntity } from './src/server/modules/users/user.entity'; import { Role } from './src/server/modules/users/role.entity'; import { Permission } from './src/server/modules/permissions/permission.entity'; import { RolePermission } from './src/server/modules/permissions/permission.entity'; import { checkPermission } from './src/server/middleware/permission.middleware'; // 模拟用户数据 function createTestUser(): UserEntity { const user = new UserEntity(); user.id = 1; user.username = 'testuser'; // 创建管理员角色 const adminRole = new Role(); adminRole.id = 1; adminRole.name = '管理员'; // 创建创建用户权限 const createUserPermission = new Permission(); createUserPermission.id = 1; createUserPermission.code = 'system:user:create'; createUserPermission.name = '创建用户'; // 创建角色权限关联 const rolePermission = new RolePermission(); rolePermission.id = 1; rolePermission.role = adminRole; rolePermission.permission = createUserPermission; // 关联角色和权限 adminRole.rolePermissions = [rolePermission]; user.roles = [adminRole]; return user; } // 测试权限检查 function testPermissionCheck() { const user = createTestUser(); const permissionChecker = checkPermission(['system:user:create']); console.log('=== 权限中间件修复测试 ==='); console.log('测试用户拥有权限:', 'system:user:create'); console.log('检查所需权限:', ['system:user:create']); const result = permissionChecker(user); console.log('权限检查结果:', result ? '✅ 通过' : '❌ 失败'); // 测试不存在的权限 const noPermissionChecker = checkPermission(['system:user:delete']); const noResult = noPermissionChecker(user); console.log('检查未拥有权限:', ['system:user:delete']); console.log('权限检查结果:', !noResult ? '✅ 正确拒绝' : '❌ 错误通过'); console.log('\n=== 测试总结 ==='); console.log('修复后的权限中间件已经能够正确匹配权限编码!'); } // 运行测试 if (require.main === module) { testPermissionCheck(); } export { testPermissionCheck };