| 12345678910111213141516171819202122232425262728293031323334 |
- -- ============================================================================
- -- 1.0.436 verify:该角色的两条机构管理相关绑定必须已回收,且其它租户/角色/菜单不受影响。
- --
- -- 约定(AutoVersionUpdate.RunVerifyScriptIfExists):每条语句取「首行首列」当布尔断言,
- -- 必须为真;返回 0 行会得到 NULL 判假并中断启动。故断言一律返回标量真值,不使用 SET。
- -- 环境容错:目标角色不存在的库上主脚本为空操作,各断言以「本就没有这些绑定」自然为真。
- -- ============================================================================
- -- V1:目标角色不再持有 sysOrg:list 按钮
- SELECT (SELECT COUNT(*) FROM `SysRoleMenu`
- WHERE `RoleId` = 838258976469061 AND `MenuId` = 1300200030201) = 0 AS v1_btn_revoked;
- -- V2:目标角色不再持有 机构管理 菜单
- SELECT (SELECT COUNT(*) FROM `SysRoleMenu`
- WHERE `RoleId` = 838258976469061 AND `MenuId` = 1300200030101) = 0 AS v2_menu_revoked;
- -- V3:该角色对 sysOrg 的写权限本就为 0,回收后仍为 0(不应因本脚本产生任何新增)
- SELECT (SELECT COUNT(*) FROM `SysRoleMenu`
- WHERE `RoleId` = 838258976469061
- AND `MenuId` IN (1300200030301, 1300200030401, 1300200030501)) = 0 AS v3_no_sysorg_write;
- -- V4:租户 B 的同名角色(797403760988229 下 RoleId=838259499909189)**不受影响**,
- -- 其 sysOrg:list 绑定仍在(本批只回收租户 A 这一个角色)
- SELECT (SELECT COUNT(*) FROM `SysRoleMenu`
- WHERE `RoleId` = 838259499909189 AND `MenuId` = 1300200030201) = 1 AS v4_other_tenant_role_untouched;
- -- V5:SysMenu 本身未被删改(机构管理菜单与其查询按钮仍存在且启用)
- SELECT (SELECT COUNT(*) FROM `SysMenu`
- WHERE `Id` IN (1300200030101, 1300200030201) AND `Status` = 1) = 2 AS v5_sysmenu_intact;
- -- V6:SysTenantMenu 未被删改(租户 A 对这两个菜单的可见性配置保持原样,
- -- 以便将来需要时仍可通过角色授权正常启用)
- SELECT (SELECT COUNT(*) FROM `SysTenantMenu`
- WHERE `TenantId` = 838257186181189 AND `MenuId` IN (1300200030101, 1300200030201)) = 2 AS v6_systenantmenu_intact;
|