1.0.386.verify.sql 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. -- 1.0.386 verify: UAT_FUNCTION_USER 应已获得 sysOrg:list 按钮权限。
  2. --
  3. -- 约定:AutoVersionUpdate 取每条语句「首行首列」当布尔断言,必须为真。
  4. -- 返回 0 行会得到 NULL 判假并中断启动,故断言一律返回标量真值。
  5. -- 环境容错:角色不存在的库上主脚本为空操作,断言同样短路为真。
  6. -- 1) 角色已绑定 sysOrg:list 菜单
  7. SELECT IF(
  8. (SELECT COUNT(*) FROM SysRole WHERE Code = 'UAT_FUNCTION_USER' AND Status = 1) = 0,
  9. 1,
  10. (SELECT COUNT(*)
  11. FROM SysRoleMenu rm
  12. JOIN SysRole r ON r.Id = rm.RoleId
  13. JOIN SysMenu m ON m.Id = rm.MenuId
  14. WHERE r.Code = 'UAT_FUNCTION_USER'
  15. AND m.Permission = 'sysOrg:list'
  16. AND m.Type = 3)
  17. ) AS ok_binding;
  18. -- 2) 无重复绑定(幂等)
  19. SELECT IF(
  20. (SELECT COUNT(*) FROM (
  21. SELECT rm.RoleId, rm.MenuId
  22. FROM SysRoleMenu rm
  23. JOIN SysRole r ON r.Id = rm.RoleId
  24. WHERE r.Code = 'UAT_FUNCTION_USER'
  25. GROUP BY rm.RoleId, rm.MenuId
  26. HAVING COUNT(*) > 1
  27. ) dup) = 0,
  28. 1, 0
  29. ) AS ok_no_duplicate;