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) {
|
||||
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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user