虚拟清单增加创建者权限校验

This commit is contained in:
xiejunyu
2022-06-10 11:52:41 +08:00
parent edccaa0b51
commit 7b8707bec5
4 changed files with 66 additions and 8 deletions
@@ -119,8 +119,9 @@ public class DummyInventoryBaseEOController extends JeroController<DummyInventor
@AutoLog(value = "虚拟清单基础表-通过id删除")
@ApiOperation(value="虚拟清单基础表-通过id删除", notes="虚拟清单基础表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
dummyInventoryBaseEOService.deleteById(id);
public Result<?> delete(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
dummyInventoryBaseEOService.deleteById(id,cut);
return Result.OK("删除成功!");
}
@@ -44,7 +44,7 @@ public interface IDummyInventoryBaseEOService extends IService<DummyInventoryBas
* @param id
* @return
*/
void deleteById(String id);
void deleteById(String id,String cut);
/**
* 批量删除
@@ -113,6 +113,26 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
*/
@Override
public void editById(DummyInventoryBaseEO dummyInventoryBaseEO) {
DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
List<String> createByNameList =new ArrayList<>();
if (StringUtils.isNotBlank(dummyInventoryBaseEO.getCreateBy())) {
createByNameList = Arrays.asList(dummyInventoryBaseEO.getCreateBy().split(","));
if (CollectionUtils.isNotEmpty(createByNameList)) {
// 增加创建者校验
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String loginUserName = sysUser.getUsername();
if (!baseEO.getCreateBy().contains(loginUserName)) {
if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
throw new JeroBootException("当前用户非创建者,无法编辑");
} else {
throw new JeroBootException("The current user is not the creator and cannot be edited.");
}
}
}
}
Date now = new Date();
dummyInventoryBaseEO.setUpdateTime(now);
saveOrUpdate(dummyInventoryBaseEO);
@@ -127,7 +147,25 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
* @return
*/
@Override
public void deleteById(String id) {
public void deleteById(String id,String cut) {
// 创建者校验
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String loginUserName = sysUser.getUsername();
String createById = queryById(id).getCreateBy();
List<String> creatByIdList = Arrays.asList(createById.split(","));
if (CollectionUtils.isNotEmpty(creatByIdList)) {
for(String createBy : creatByIdList){
if (!loginUserName.equals(createBy)) {
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("当前用户非所有选择的数据的创建者,无法删除");
}else{
throw new JeroBootException("The current user is not the creator of all selected data, and cannot be deleted.");
}
}
}
}
removeById(id);
}
@@ -247,7 +285,27 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
@Override
@Transactional
public void issue(DummyInventoryBaseEO dummyInventoryBaseEO){
this.updateById(dummyInventoryBaseEO);
// 增加创建者校验
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String loginUserName = sysUser.getUsername();
DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
List<String> createByNameList =new ArrayList<>();
if (StringUtils.isNotBlank(baseEO.getCreateBy())) {
createByNameList = Arrays.asList(baseEO.getCreateBy().split(","));
if (CollectionUtils.isNotEmpty(createByNameList)){
if (!createByNameList.contains(loginUserName)) {
if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
throw new JeroBootException("当前用户非创建者,无法发布");
} else {
throw new JeroBootException("The current user is not the creator and cannot be issued.");
}
}
}
}
// this.updateById(dummyInventoryBaseEO);
//不管有没有维护清单,都返回操作成功
//发布与撤回均需要发消息(向订阅的人员发消息)
//首次发布不发消息
@@ -351,7 +409,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//向订阅该领域管理的人发消息和飞书
sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据
if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段
String base = JSONArray.toJSONString(dummyInventoryBaseEOList);
@@ -263,9 +263,9 @@ public class OcrRecordEOController extends JeroController<OcrRecordEO, IOcrRecor
}else {
if (CutEnum.CN.getValue().equals(cut)) {
return Result.error("当前用户非创建者,无法下载");
return Result.error("当前用户非创建者,无法删除");
}else{
return Result.error("The current user is not the creator and cannot be downloaded.");
return Result.error("The current user is not the creator and cannot be deleted.");
}
}
}