chenxing fe6c07cc4b
build / build-push (push) Failing after 2m2s
fix(授权): 父级勾选态改「任一子节点选中即选中」+ 无模块应用整应用授权(-appId 哨兵)
1. 父级选中态(组授权 / 角色授权口径统一)
   两页 isAppChecked 由「全部子模块都勾选才 true」改为「任一子孙被勾选即 true」,
   配合前端样式把 zTree checkbox_true_part 图标指向 checkbox_true_full,
   折叠态也能一眼看出「部分授权」,不再依赖视觉很弱的半选。

2. 无子模块应用(如「一周安排」)此前勾选不落库、刷新即失效
   - 新增 constant/AppLevelModuleId:用 -appId 作「整应用授权」的 module_id 哨兵。
     两套授权表都是 (owner_id, module_id) 唯一键,用 0 会让同组/同角色的第二个
     无模块应用撞唯一键;真实模块 id 恒正,负数段天然空闲且权限判定永不命中。
   - GroupAuthzService#resolveModuleIds:应用无任何模块时返回 -appId,使「整应用」
     授权能落库;findGroupAppsWithModules 按 -appId 回填应用级 checked / inheritFlag。
   - AppRoleService:findRoleModuleTree 同口径回填 checked;saveRoleModules 对负数项
     跳过模块校验,改为校验应用存在性与角色授权范围(角色授权是全量覆盖,哨兵必须原样落库)。
   - GroupAuthzService#buildModuleTree:脏数据兜底——parent_id 指向已删模块导致根节点
     全丢时,把全部模块提升为根,避免「有模块的应用」被误判成无模块应用。

涉及前端配套改动见 UserBaseFront 同名提交(GroupAuth.vue / AppModuleCheckTree.vue)。
2026-10-20 12:18:22 +08:00
2026-09-10 15:00:54 +08:00
2026-08-13 21:30:19 +08:00
2026-09-07 18:17:02 +08:00
2026-08-18 21:51:18 +08:00
2026-08-13 21:30:19 +08:00
S
Description
managed by projman
1.5 MiB
Languages
Java 99.1%
JavaScript 0.6%
Python 0.2%