1.0.384.sql 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- 1.0.384: UATAdminA 补绑 UAT_FUNCTION_USER 角色,修复登录后「抱歉,您没有登录权限」。
  2. --
  3. -- 背景:
  4. -- UATAdminA 为 AccountType=777 普通账号,SysMenuService.GetLoginMenuList 中
  5. -- !(SuperAdmin || SysAdmin) 分支成立,菜单只能来自 SysRoleMenu 的角色授权。
  6. -- 该账号原绑的 SMART_OPS_DEPT_HEAD / SMART_OPS_MODULE_OWNER / SMART_OPS_OPS_OWNER
  7. -- 三个角色在 SysRoleMenu 中均为 0 条菜单授权(纯业务身份标签角色),
  8. -- 导致菜单接口返回空数组,前端 router/backEnd.ts 判定 isNoPower=true,
  9. -- 弹出「抱歉,您没有登录权限」并 clearTokens() 退回登录页。
  10. --
  11. -- 同租户(UATTEST_CHL / 838257186181189)其余 5 个账号
  12. -- UATPlanA / UATPurchaseA / UATWarehouseA / UATQualityA / UATExceptionA
  13. -- 均绑定了 UAT_FUNCTION_USER(308 个菜单,DataScope=1 全部数据)而工作正常。
  14. -- 本脚本使 UATAdminA 与同租户既有范式对齐,不改 AccountType、不改权限模型。
  15. --
  16. -- 幂等:已绑定则不重复插入;账号或角色不存在的库上为空操作。
  17. DROP TEMPORARY TABLE IF EXISTS tmp_uat_admin_a_ur;
  18. CREATE TEMPORARY TABLE tmp_uat_admin_a_ur (
  19. seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  20. user_id BIGINT NOT NULL,
  21. role_id BIGINT NOT NULL
  22. );
  23. INSERT INTO tmp_uat_admin_a_ur (user_id, role_id)
  24. SELECT u.Id, r.Id
  25. FROM SysUser u
  26. JOIN SysRole r
  27. ON r.TenantId = u.TenantId
  28. AND r.Code = 'UAT_FUNCTION_USER'
  29. AND r.Status = 1
  30. WHERE u.Account = 'UATAdminA'
  31. AND u.Status = 1
  32. AND NOT EXISTS (
  33. SELECT 1 FROM SysUserRole x WHERE x.UserId = u.Id AND x.RoleId = r.Id
  34. );
  35. SET @uat_admin_a_ur_base := (SELECT IFNULL(MAX(Id), 0) FROM SysUserRole);
  36. INSERT INTO SysUserRole (Id, UserId, RoleId)
  37. SELECT @uat_admin_a_ur_base + s.seq, s.user_id, s.role_id
  38. FROM tmp_uat_admin_a_ur s;
  39. DROP TEMPORARY TABLE IF EXISTS tmp_uat_admin_a_ur;