Browse Source

重构权限

master
陈裕财 4 years ago
parent
commit
a335f5d2c6
  1. 12
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 10
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java
  3. 4
      xm-core/src/main/java/com/xm/core/service/XmGroupService.java
  4. 2
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml

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

@ -257,7 +257,7 @@ public class XmTaskController {
List<XmTask> no=new ArrayList<>(); List<XmTask> no=new ArrayList<>();
User user = LoginUtils.getCurrentUserInfo(); User user = LoginUtils.getCurrentUserInfo();
for (XmTask xmTaskDb : xmTasksDb) { for (XmTask xmTaskDb : xmTasksDb) {
tips=groupService.checkIsAdmOrTeamHeadOrAss(user,user.getUserid(),xmTaskDb.getProjectId());
tips=groupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId());
if(!tips.isOk()){ if(!tips.isOk()){
if(user.getUserid().equals(xmTaskDb.getExecutorUserid())||user.getUserid().equals(xmTaskDb.getCreateUserid())){ if(user.getUserid().equals(xmTaskDb.getExecutorUserid())||user.getUserid().equals(xmTaskDb.getCreateUserid())){
can.add(xmTaskDb); can.add(xmTaskDb);
@ -977,8 +977,8 @@ public class XmTaskController {
}else{ }else{
for (XmTask xmTask : pt.getValue()) { for (XmTask xmTask : pt.getValue()) {
if(!user.getUserid().equals(xmTask.getCreateUserid()) && !user.getUserid().equals(xmTask.getExecutorUserid())){ if(!user.getUserid().equals(xmTask.getCreateUserid()) && !user.getUserid().equals(xmTask.getExecutorUserid())){
if(!groupService.checkUserIsOtherUserTeamHeadOrAss(groupVoList,xmTask.getCreateUserid(),user.getUserid())){
if(!groupService.checkUserIsOtherUserTeamHeadOrAss(groupVoList,xmTask.getExecutorUserid(),user.getUserid())){
if(!groupService.checkUserIsOtherUserTeamHeadOrAss(groupVoList,user.getUserid(),xmTask.getCreateUserid())){
if(!groupService.checkUserIsOtherUserTeamHeadOrAss(groupVoList,user.getUserid(),xmTask.getExecutorUserid())){
noAllowTasks.add(xmTask); noAllowTasks.add(xmTask);
} }
} }
@ -1067,7 +1067,7 @@ public class XmTaskController {
if(!projectId.equals(node.getProjectId()) ){ if(!projectId.equals(node.getProjectId()) ){
return ResponseHelper.failed("not-same-project","所有任务必须同属于一个项目"); return ResponseHelper.failed("not-same-project","所有任务必须同属于一个项目");
} }
boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,node.getCreateUserid(),user.getUserid());
boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,user.getUserid(),node.getCreateUserid());
if(!isHead){ if(!isHead){
noAllowNodes.add(node); noAllowNodes.add(node);
@ -1204,7 +1204,7 @@ public class XmTaskController {
pgroups=groupService.getProductGroupVoList(xmTaskDb.getProductId()); pgroups=groupService.getProductGroupVoList(xmTaskDb.getProductId());
} }
for (XmTask task : xmTaskDbMap.values()) { for (XmTask task : xmTaskDbMap.values()) {
boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,task.getCreateUserid(),user.getUserid());
boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,user.getUserid(),task.getCreateUserid());
if(!isHead){ if(!isHead){
noAllowTasksDbMap.put(task.getId(),task); noAllowTasksDbMap.put(task.getId(),task);
}else { }else {
@ -1349,7 +1349,7 @@ public class XmTaskController {
boolean isAdm=groupService.checkUserIsProjectAdm(parentTask.getProjectId(),user.getUserid()); 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,user.getUserid(),task.getCreateUserid());
if(!isHead){ if(!isHead){
noAllowTasksDbMap.put(task.getId(),task); noAllowTasksDbMap.put(task.getId(),task);
}else { }else {

10
xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java

@ -230,7 +230,7 @@ public class XmTaskExecuserController {
boolean isPm=groupService.checkUserIsProjectAdm(xmTask.getProjectId(),user.getUserid()); boolean isPm=groupService.checkUserIsProjectAdm(xmTask.getProjectId(),user.getUserid());
if(!isPm){ if(!isPm){
List<XmGroupVo> myGgroups=groupService.getProjectGroupVoList(projectId); List<XmGroupVo> myGgroups=groupService.getProjectGroupVoList(projectId);
boolean isTeamHeader= groupService.checkUserIsOtherUserTeamHeadOrAss(myGgroups,xmTaskExecuser.getCreateUserid(),user.getUserid());
boolean isTeamHeader= groupService.checkUserIsOtherUserTeamHeadOrAss(myGgroups,user.getUserid(),xmTaskExecuser.getCreateUserid());
if(!isTeamHeader){ if(!isTeamHeader){
return ResponseHelper.failed("no-qx","您无权操作!只有任务负责人、组长、项目管理者可以给任务分配候选人。"); return ResponseHelper.failed("no-qx","您无权操作!只有任务负责人、组长、项目管理者可以给任务分配候选人。");
} }
@ -368,7 +368,7 @@ public class XmTaskExecuserController {
User user=LoginUtils.getCurrentUserInfo(); User user=LoginUtils.getCurrentUserInfo();
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid()); boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( isHead || isTaskCreater ) { if( isHead || isTaskCreater ) {
//放行组长和任务责任人可以将候选人变更为执行人 //放行组长和任务责任人可以将候选人变更为执行人
} else{ } else{
@ -437,7 +437,7 @@ public class XmTaskExecuserController {
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!自己、任务责任人、组长可以修改任务的报价信息"); tips.setFailureMsg("无权操作!自己、任务责任人、组长可以修改任务的报价信息");
} }
@ -491,7 +491,7 @@ public class XmTaskExecuserController {
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!任务责任人、组长可以邀请用户成为任务候选人,普通用户可以自己申请成为候选人"); tips.setFailureMsg("无权操作!任务责任人、组长可以邀请用户成为任务候选人,普通用户可以自己申请成为候选人");
} }
@ -536,7 +536,7 @@ public class XmTaskExecuserController {
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!只有自己、任务责任人、组长可以删除任务执行人."); tips.setFailureMsg("无权操作!只有自己、任务责任人、组长可以删除任务执行人.");
} }

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

@ -398,11 +398,11 @@ public class XmGroupService extends BaseService {
/** /**
* 检查某个人是否另外一个人的组长 * 检查某个人是否另外一个人的组长
* @param xmGroupVoList * @param xmGroupVoList
* @param headUserid 检查headUserid是不是memUserid的组长
* @param memUserid * @param memUserid
* @param headUserid
* @return * @return
*/ */
public boolean checkUserIsOtherUserTeamHeadOrAss(List<XmGroupVo> xmGroupVoList, String memUserid, String headUserid){
public boolean checkUserIsOtherUserTeamHeadOrAss(List<XmGroupVo> xmGroupVoList, String headUserid, String memUserid){
if(xmGroupVoList==null || xmGroupVoList.size()==0) { if(xmGroupVoList==null || xmGroupVoList.size()==0) {
return false; return false;
} }

2
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml

@ -222,7 +222,7 @@
<foreach collection="menuIds" item="item" index="index" open="(" separator="," close=")" > <foreach collection="menuIds" item="item" index="index" open="(" separator="," close=")" >
#{item} #{item}
</foreach> </foreach>
and ( (p.adm_userid=#{mmUserid} or p.pm_userid=#{mmUserid} or pm.ass_userid=#{mmUserid})
and ( (p.adm_userid=#{mmUserid} or p.pm_userid=#{mmUserid} or p.ass_userid=#{mmUserid})
or exists( select 1 from xm_menu m where FIND_IN_SET(m.menu_id,res.pid_paths) and m.mm_userid=#{mmUserid} ) or exists( select 1 from xm_menu m where FIND_IN_SET(m.menu_id,res.pid_paths) and m.mm_userid=#{mmUserid} )
) )
</select> </select>

Loading…
Cancel
Save