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