|
@ -159,14 +159,20 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
|
|
//获取父id
|
|
//获取父id
|
|
Long pid = sysOrgParam.getPid();
|
|
Long pid = sysOrgParam.getPid();
|
|
boolean superAdmin = LoginContextHolder.me().isSuperAdmin();
|
|
boolean superAdmin = LoginContextHolder.me().isSuperAdmin();
|
|
//如果登录用户不是超级管理员,且新增的机构父id不是0,则进行数据权限校验
|
|
|
|
if (!superAdmin && !pid.equals(0L)) {
|
|
|
|
List<Long> dataScope = sysOrgParam.getDataScope();
|
|
|
|
//数据范围为空
|
|
|
|
if (ObjectUtil.isEmpty(dataScope)) {
|
|
|
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
|
|
} else if(!dataScope.contains(pid)) {
|
|
|
|
//所添加的组织机构的父机构不在自己的数据范围内
|
|
|
|
|
|
//如果登录用户不是超级管理员
|
|
|
|
if (!superAdmin) {
|
|
|
|
//如果新增的机构父id不是0,则进行数据权限校验
|
|
|
|
if(!pid.equals(0L)) {
|
|
|
|
List<Long> dataScope = sysOrgParam.getDataScope();
|
|
|
|
//数据范围为空
|
|
|
|
if (ObjectUtil.isEmpty(dataScope)) {
|
|
|
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
|
|
} else if(!dataScope.contains(pid)) {
|
|
|
|
//所添加的组织机构的父机构不在自己的数据范围内
|
|
|
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
//如果新增的机构父id是0,则根本没权限,只有超级管理员能添加父id为0的节点
|
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
}
|
|
}
|
|
}
|
|
}
|