fix(87352): 文档拆分--更改权限应该增加数据权限

This commit is contained in:
yjz
2024-07-29 15:57:08 +08:00
parent 3b64a751e4
commit 467ea3336a
2 changed files with 18 additions and 7 deletions
@@ -85,7 +85,7 @@ public class DocumentSplitInfo extends BaseEntity {
private String cut;
/**ids 搜索用*/
@ApiModelProperty(value = "ids 搜索用")
@ApiModelProperty(value = "ids 搜索用")
@TableField(exist = false)
private String ids;
@@ -227,15 +227,22 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
LambdaUpdateWrapper<SarFileSplitInfoEO> updateWrapper = new LambdaUpdateWrapper<>();
List<String> ids;
// 获取id集合
if (StringUtils.isNotBlank(documentSplitInfo.getIds())){
ids = Arrays.asList(documentSplitInfo.getIds().split(","));
}else {
List<DocumentSplitInfo> documentSplitInfos = queryByList(documentSplitInfo);
ids = documentSplitInfos.stream().map(DocumentSplitInfo::getId).collect(Collectors.toList());
}
ids = Arrays.asList(documentSplitInfo.getIds().split(","));
// 水平越权
isHorizontalOverstep(String.join(",", ids));
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!loginUser.getRoleIds().contains("admin")){
List<DocumentSplitInfo> documentSplitInfos = queryByList(documentSplitInfo);
long count = documentSplitInfos.stream().filter(v -> !loginUser.getId().equals(v.getAuthor())).count();
if (count > 0){
if(LanguageEnum.CN.equals(MessageUtils.getLanguage())) {
throw new JeroBootException("无权限!");
}else{
throw new JeroBootException("No access!");
}
}
}
updateWrapper.in(SarFileSplitInfoEO::getId, ids);
SysUser sysUser = sysUserService.getById(documentSplitInfo.getCreateBy());
@@ -1666,6 +1673,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
private static QueryWrapper<SarFileSplitInfoEO> getSarFileSplitInfoEOQueryWrapper(DocumentSplitInfo documentSplitInfo) {
QueryWrapper<SarFileSplitInfoEO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.isNotBlank(documentSplitInfo.getId()), "id", documentSplitInfo.getId());
if (StringUtils.isNotBlank(documentSplitInfo.getIds())){
String[] ids = documentSplitInfo.getIds().split(",");
queryWrapper.in(StringUtils.isNotBlank(documentSplitInfo.getIds()), "id", Arrays.asList(ids));
}
// 标准编号/标准名称
if (StringUtils.isNotBlank(documentSplitInfo.getSerialNumberOrName())){
queryWrapper.and(qw -> qw