| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/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 };
|