fix(message): notice_role仅用于菜单可见,列表只可查看本人创建
- applyAdminPermissionFilter 白名单移除 notice_role,使其落入兜底分支 - 兜底过滤字段由 loginUser.getId() 修正为 getUsername(),对齐 createBy 存储
This commit is contained in:
+4
-5
@@ -188,14 +188,13 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl<SysMessageNoticeMap
|
|||||||
private void applyAdminPermissionFilter(LambdaQueryWrapper<SysMessageNotice> wrapper) {
|
private void applyAdminPermissionFilter(LambdaQueryWrapper<SysMessageNotice> wrapper) {
|
||||||
LoginUser loginUser = GlobalUtils.getLoginUser();
|
LoginUser loginUser = GlobalUtils.getLoginUser();
|
||||||
/*
|
/*
|
||||||
* 1.后台接口的消息列表需要做一定数据权限控制需考虑的角色有admin,system,second_manager,third_manager,notice_role
|
* 1.后台接口的消息列表需要做一定数据权限控制需考虑的角色有admin,system,second_manager,third_manager
|
||||||
* 2.admin,system,notice_role可查看所有的消息通知
|
* 2.admin,system可查看所有的消息通知
|
||||||
* 3.second_manager,third_manager可查看管理单位下的消息列表
|
* 3.second_manager,third_manager可查看管理单位下的消息列表
|
||||||
* 4.未命中上述白名单的角色,兜底只可查看本人创建的消息通知
|
|
||||||
*/
|
*/
|
||||||
boolean permissions = false;
|
boolean permissions = false;
|
||||||
List<String> roleCodes = Arrays.asList(Objects.toString(loginUser.getRoleCodes(), "").split(","));
|
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;
|
permissions = true;
|
||||||
} else if (roleCodes.contains(RoleEnum.SECOND_MANAGER.roleName)) {
|
} else if (roleCodes.contains(RoleEnum.SECOND_MANAGER.roleName)) {
|
||||||
if (StrUtil.isNotEmpty(loginUser.getDepartCodes())) {
|
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user