feat(message): 消息通知列表权限白名单加入notice_role + 兜底本人创建可见
This commit is contained in:
@@ -48,7 +48,8 @@ public enum RoleEnum {
|
|||||||
MANAGER("manager"),
|
MANAGER("manager"),
|
||||||
MEDICALUSER("medicaluser"),
|
MEDICALUSER("medicaluser"),
|
||||||
MEDICALADMIN("medicaladmin"),
|
MEDICALADMIN("medicaladmin"),
|
||||||
HOS_DOCTOR("hos_doctor");
|
HOS_DOCTOR("hos_doctor"),
|
||||||
|
NOTICE_ROLE("notice_role");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色名
|
* 角色名
|
||||||
|
|||||||
+6
-5
@@ -188,13 +188,14 @@ 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
|
* 1.后台接口的消息列表需要做一定数据权限控制需考虑的角色有admin,system,second_manager,third_manager,notice_role
|
||||||
* 2.admin,system可查看所有的活动
|
* 2.admin,system,notice_role可查看所有的消息通知
|
||||||
* 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)) {
|
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)) {
|
||||||
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())) {
|
||||||
@@ -203,8 +204,8 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl<SysMessageNoticeMap
|
|||||||
permissions = true;
|
permissions = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 没有权限,返回空结果
|
// 未命中权限白名单,兜底只查看本人创建的消息
|
||||||
wrapper.eq(!permissions, SysMessageNotice::getId, "-1");
|
wrapper.eq(!permissions, SysMessageNotice::getCreateBy, loginUser.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user