Browse Source

重构权限

master
陈裕财 4 years ago
parent
commit
23a95373ee
  1. 28
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 21
      xm-core/src/main/java/com/xm/core/service/XmGroupService.java

28
xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java

@ -16,7 +16,6 @@ import com.mdp.safe.client.utils.LoginUtils;
import com.mdp.swagger.ApiEntityParams; import com.mdp.swagger.ApiEntityParams;
import com.xm.core.PubTool; import com.xm.core.PubTool;
import com.xm.core.entity.XmMenu; import com.xm.core.entity.XmMenu;
import com.xm.core.entity.XmProduct;
import com.xm.core.entity.XmProject; import com.xm.core.entity.XmProject;
import com.xm.core.entity.XmTask; import com.xm.core.entity.XmTask;
import com.xm.core.queue.XmTaskSumParentsPushService; import com.xm.core.queue.XmTaskSumParentsPushService;
@ -78,6 +77,9 @@ public class XmTaskController {
@Autowired @Autowired
XmMenuService xmMenusService; XmMenuService xmMenusService;
@Autowired
XmMenuOperQxService menuOperQxService;
@Autowired @Autowired
XmProductService xmProductService; XmProductService xmProductService;
@ -932,9 +934,9 @@ public class XmTaskController {
if(!StringUtils.hasText(tasksMenu.getMenuId()) ){ if(!StringUtils.hasText(tasksMenu.getMenuId()) ){
return ResponseHelper.failed("menuId-0","需求编号不能为空"); return ResponseHelper.failed("menuId-0","需求编号不能为空");
}; };
XmMenu xmMenuDb=this.xmMenusService.selectOneObject(new XmMenu(tasksMenu.getMenuId()));
XmMenu xmMenuDb= menuOperQxService.getUserCanOpMenuById(tasksMenu.getMenuId(), user.getUserid(), false);
if(xmMenuDb==null){ if(xmMenuDb==null){
return ResponseHelper.failed("menu-0","需求已不存在");
return ResponseHelper.failed("menu-0","无权限挂接任务到别人负责的需求上");
} }
if("8".equals(xmMenuDb.getStatus())){ if("8".equals(xmMenuDb.getStatus())){
@ -944,15 +946,7 @@ public class XmTaskController {
if("9".equals(xmMenuDb.getStatus())){ if("9".equals(xmMenuDb.getStatus())){
return ResponseHelper.failed("menu-status-8","需求已删除"); return ResponseHelper.failed("menu-status-8","需求已删除");
} }
XmProduct xmProductDb=xmProductService.getProductFromCache(xmMenuDb.getProductId());
boolean hasMenuQx=true;
Tips tips2=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),"1",xmProductDb.getId(),null);
if(!tips2.isOk()){
hasMenuQx=false;
}
List<XmTask> allowTasks=new ArrayList<>(); List<XmTask> allowTasks=new ArrayList<>();
List<XmTask> ntype1Tasks=new ArrayList<>(); List<XmTask> ntype1Tasks=new ArrayList<>();
List<XmTask> noAllowTasks=new ArrayList<>(); List<XmTask> noAllowTasks=new ArrayList<>();
List<XmTask> tasksDb=this.xmTaskService.selectTaskListByIds(tasksMenu.getTaskIds()); List<XmTask> tasksDb=this.xmTaskService.selectTaskListByIds(tasksMenu.getTaskIds());
@ -963,7 +957,6 @@ public class XmTaskController {
continue; continue;
} }
} }
if(hasMenuQx==false){
Map<String,List<XmTask>> projectTasksMap=new HashMap<>(); Map<String,List<XmTask>> projectTasksMap=new HashMap<>();
for (XmTask xmTask : tasksDb) { for (XmTask xmTask : tasksDb) {
List<XmTask> projectTasks=projectTasksMap.get(xmTask.getProjectId()); List<XmTask> projectTasks=projectTasksMap.get(xmTask.getProjectId());
@ -995,7 +988,6 @@ public class XmTaskController {
} }
} }
}
allowTasks=tasksDb.stream().filter(i->!noAllowTasks.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList()); allowTasks=tasksDb.stream().filter(i->!noAllowTasks.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList());
allowTasks=allowTasks.stream().filter(i->!ntype1Tasks.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList()); allowTasks=allowTasks.stream().filter(i->!ntype1Tasks.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList());
@ -1353,8 +1345,8 @@ public class XmTaskController {
Map<String,XmTask> allowTasksDbMap=new HashMap<>(); Map<String,XmTask> allowTasksDbMap=new HashMap<>();
Map<String,XmTask> noAllowTasksDbMap=new HashMap<>(); Map<String,XmTask> noAllowTasksDbMap=new HashMap<>();
List<XmGroupVo> pgroups="0".equals(parentTask.getPtype())? groupService.getProjectGroupVoList(parentTask.getProjectId()) : groupService.getProductGroupVoList(parentTask.getProductId());
boolean isAdm=groupService.checkUserIsPmOrAssByPtype(user.getUserid(),parentTask.getPtype(),parentTask.getProjectId(),parentTask.getProductId());
List<XmGroupVo> pgroups= groupService.getProjectGroupVoList(parentTask.getProjectId());
boolean isAdm=groupService.checkUserIsProjectAdm(parentTask.getProjectId(),user.getUserid());
if(!isAdm){ if(!isAdm){
for (XmTask task : canOpxmTasks) { for (XmTask task : canOpxmTasks) {
boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,task.getCreateUserid(),user.getUserid()); boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,task.getCreateUserid(),user.getUserid());
@ -1392,11 +1384,9 @@ public class XmTaskController {
} }
if(allowTasksDbMap3.size()>0){ if(allowTasksDbMap3.size()>0){
this.xmTaskService.batchChangeParent(allowTasksDbMap3.values().stream().collect(Collectors.toList()),parentTask); this.xmTaskService.batchChangeParent(allowTasksDbMap3.values().stream().collect(Collectors.toList()),parentTask);
if("1".equals(parentTask.getPtype())){
this.xmRecordService.addProductXmTaskRecord(parentTask.getProductId(),parentTask.getId(),"批量挂接子节点","成功将以下"+allowTasksDbMap3.size()+"个计划或任务及其所有子项挂接到【"+parentTask.getName()+"】上,【"+allowTasksDbMap3.values().stream().map(i->i.getName()).collect(Collectors.joining(","))+"】;");
}else {
this.xmRecordService.addXmTaskRecord(parentTask.getProjectId(),parentTask.getId(),"批量挂接子节点","成功将以下"+allowTasksDbMap3.size()+"个计划或任务及其所有子项挂接到【"+parentTask.getName()+"】上,【"+allowTasksDbMap3.values().stream().map(i->i.getName()).collect(Collectors.joining(","))+"】;"); this.xmRecordService.addXmTaskRecord(parentTask.getProjectId(),parentTask.getId(),"批量挂接子节点","成功将以下"+allowTasksDbMap3.size()+"个计划或任务及其所有子项挂接到【"+parentTask.getName()+"】上,【"+allowTasksDbMap3.values().stream().map(i->i.getName()).collect(Collectors.joining(","))+"】;");
}
} }

21
xm-core/src/main/java/com/xm/core/service/XmGroupService.java

@ -2,7 +2,6 @@ package com.xm.core.service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.mdp.core.entity.Tips; import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.service.BaseService; import com.mdp.core.service.BaseService;
import com.mdp.safe.client.entity.User; import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils; import com.mdp.safe.client.utils.LoginUtils;
@ -869,25 +868,5 @@ public class XmGroupService extends BaseService {
return groupVo; return groupVo;
} }
} }
public boolean checkUserIsPmOrAssByPtype(String userid, String ptype, String projectId, String productId) {
Tips tips = new Tips("成功");
if(!"0".equals(ptype) && !"1".equals(ptype)){
throw new BizException( new Tips(false,"ptype-not-0|1","类型不正确"));
}
if("0".equals(ptype) && !StringUtils.hasText(projectId)){
throw new BizException( new Tips(false,"projectId-0","项目编号不能为空"));
}
if("1".equals(ptype) && !StringUtils.hasText(productId)){
throw new BizException( new Tips(false,"productId-0","产品编号不能为空"));
}
if("0".equals(ptype)){
return this.checkUserIsProjectAdm(projectId,userid);
}else{
return this.checkUserIsProductAdm(productId,userid);
}
}
} }
Loading…
Cancel
Save