fix(message): notice_role仅用于菜单可见,列表只可查看本人创建

- applyAdminPermissionFilter 白名单移除 notice_role,使其落入兜底分支
- 兜底过滤字段由 loginUser.getId() 修正为 getUsername(),对齐 createBy 存储
This commit is contained in:
wanghao
2026-08-10 16:36:30 +08:00
parent b6058c5f80
commit a835b874ad
@@ -188,14 +188,13 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl<SysMessageNoticeMap
private void applyAdminPermissionFilter(LambdaQueryWrapper<SysMessageNotice> wrapper) {
LoginUser loginUser = GlobalUtils.getLoginUser();
/*
* 1.后台接口的消息列表需要做一定数据权限控制需考虑的角色有admin,system,second_manager,third_manager,notice_role
* 2.admin,system,notice_role可查看所有的消息通知
* 1.后台接口的消息列表需要做一定数据权限控制需考虑的角色有admin,system,second_manager,third_manager
* 2.admin,system可查看所有的消息通知
* 3.second_manager,third_manager可查看管理单位下的消息列表
* 4.未命中上述白名单的角色,兜底只可查看本人创建的消息通知
*/
boolean permissions = false;
List<String> roleCodes = Arrays.asList(Objects.toString(loginUser.getRoleCodes(), "").split(","));
if (roleCodes.contains(RoleEnum.ADMIN_MANAGER.roleName) || roleCodes.contains(RoleEnum.SYSTEM.roleName) || roleCodes.contains(RoleEnum.WEIGHT_PLAN_ADMIN.roleName) || roleCodes.contains(RoleEnum.NOTICE_ROLE.roleName)) {
if (roleCodes.contains(RoleEnum.ADMIN_MANAGER.roleName) || roleCodes.contains(RoleEnum.SYSTEM.roleName)) {
permissions = true;
} else if (roleCodes.contains(RoleEnum.SECOND_MANAGER.roleName)) {
if (StrUtil.isNotEmpty(loginUser.getDepartCodes())) {
@@ -205,7 +204,7 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl<SysMessageNoticeMap
}
}
// 未命中权限白名单,兜底只查看本人创建的消息
wrapper.eq(!permissions, SysMessageNotice::getCreateBy, loginUser.getId());
wrapper.eq(!permissions, SysMessageNotice::getCreateBy, loginUser.getUsername());
}
/**