1.0.528.sql 1.4 KB

12345678910111213141516171819202122232425
  1. -- =====================================================================================
  2. -- 1.0.528 · 补 1.0.527 的菜单授权(S8「订单评审耗时」)
  3. --
  4. -- 背景:1.0.527 只 INSERT 了 SysMenu 行,未写 SysRoleMenu。
  5. -- Admin.NET 的前端路由由「当前用户已授权菜单」动态构建 —— 菜单存在但未授权 =
  6. -- 菜单树里没有 = 路由未注册 = 直接访问 404。冒烟时实测复现。
  7. --
  8. -- 授权口径:**不硬编码角色清单**,而是继承父目录 S8 异常监控(1329008000020) 的现有
  9. -- 授权集合。这样新页面的可见范围与同目录既有页面完全一致,不扩大也不缩小权限面。
  10. --
  11. -- 幂等:按 (RoleId, MenuId) 判存在;Id 用 1329008000027000 + 行号(已验证该区段无冲突)。
  12. -- 注意:Admin.NET 框架表 EnableUnderLine=false → PascalCase(SysRoleMenu / SysMenu)。
  13. -- =====================================================================================
  14. INSERT INTO `SysRoleMenu` (`Id`, `RoleId`, `MenuId`)
  15. SELECT 1329008000027000 + ROW_NUMBER() OVER (ORDER BY src.RoleId), src.RoleId, 1329008000027
  16. FROM (
  17. SELECT DISTINCT rm.`RoleId`
  18. FROM `SysRoleMenu` rm
  19. WHERE rm.`MenuId` = 1329008000020
  20. AND NOT EXISTS (
  21. SELECT 1 FROM (SELECT `RoleId` FROM `SysRoleMenu` WHERE `MenuId` = 1329008000027) t
  22. WHERE t.`RoleId` = rm.`RoleId`
  23. )
  24. ) src;