test-permission-fix.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env node
  2. /**
  3. * 权限中间件修复测试脚本
  4. * 用于验证权限匹配逻辑是否正确
  5. */
  6. import { UserEntity } from './src/server/modules/users/user.entity';
  7. import { Role } from './src/server/modules/users/role.entity';
  8. import { Permission } from './src/server/modules/permissions/permission.entity';
  9. import { RolePermission } from './src/server/modules/permissions/permission.entity';
  10. import { checkPermission } from './src/server/middleware/permission.middleware';
  11. // 模拟用户数据
  12. function createTestUser(): UserEntity {
  13. const user = new UserEntity();
  14. user.id = 1;
  15. user.username = 'testuser';
  16. // 创建管理员角色
  17. const adminRole = new Role();
  18. adminRole.id = 1;
  19. adminRole.name = '管理员';
  20. // 创建创建用户权限
  21. const createUserPermission = new Permission();
  22. createUserPermission.id = 1;
  23. createUserPermission.code = 'system:user:create';
  24. createUserPermission.name = '创建用户';
  25. // 创建角色权限关联
  26. const rolePermission = new RolePermission();
  27. rolePermission.id = 1;
  28. rolePermission.role = adminRole;
  29. rolePermission.permission = createUserPermission;
  30. // 关联角色和权限
  31. adminRole.rolePermissions = [rolePermission];
  32. user.roles = [adminRole];
  33. return user;
  34. }
  35. // 测试权限检查
  36. function testPermissionCheck() {
  37. const user = createTestUser();
  38. const permissionChecker = checkPermission(['system:user:create']);
  39. console.log('=== 权限中间件修复测试 ===');
  40. console.log('测试用户拥有权限:', 'system:user:create');
  41. console.log('检查所需权限:', ['system:user:create']);
  42. const result = permissionChecker(user);
  43. console.log('权限检查结果:', result ? '✅ 通过' : '❌ 失败');
  44. // 测试不存在的权限
  45. const noPermissionChecker = checkPermission(['system:user:delete']);
  46. const noResult = noPermissionChecker(user);
  47. console.log('检查未拥有权限:', ['system:user:delete']);
  48. console.log('权限检查结果:', !noResult ? '✅ 正确拒绝' : '❌ 错误通过');
  49. console.log('\n=== 测试总结 ===');
  50. console.log('修复后的权限中间件已经能够正确匹配权限编码!');
  51. }
  52. // 运行测试
  53. if (require.main === module) {
  54. testPermissionCheck();
  55. }
  56. export { testPermissionCheck };