Browse Source

任务 和 项目 actions权限

zyh
WIN-IDGBLFHC1K6\Administrator 3 years ago
parent
commit
27ba31bf4f
  1. 30
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/task/vo/TaskBaseVO.java
  2. 28
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/project/ProjectDO.java
  3. 1
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/project/ProjectServiceImpl.java

30
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/task/vo/TaskBaseVO.java

@ -1,9 +1,16 @@
package cn.iocoder.yudao.module.farm.controller.admin.task.vo; package cn.iocoder.yudao.module.farm.controller.admin.task.vo;
import cn.hutool.extra.spring.SpringUtil;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import cn.iocoder.yudao.module.farm.enums.TaskStatus; import cn.iocoder.yudao.module.farm.enums.TaskStatus;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.google.common.collect.Maps;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@ -16,7 +23,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
* 如果子 VO 存在差异的字段请不要添加到这里影响 Swagger 文档生成 * 如果子 VO 存在差异的字段请不要添加到这里影响 Swagger 文档生成
*/ */
@Data @Data
public class TaskBaseVO { public class TaskBaseVO extends BaseDO {
private Long projectId; private Long projectId;
private Long cropId; private Long cropId;
@ -56,4 +63,25 @@ public class TaskBaseVO {
private Boolean draft = false; private Boolean draft = false;
private Boolean pretendDelete; private Boolean pretendDelete;
private Map<String, Boolean> actions;
public Map<String, Boolean> getActions() {
actions = Maps.newHashMap();
// 当前用户是否有资格编辑删除这个项目
RoleService roleService = SpringUtil.getBean("roleServiceImpl");
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null;
List<RoleDO> roles = roleService.getRolesFromCache(loginUser.getRoleIds());
Optional<RoleDO> admin = roles.stream().filter(roleDO -> roleDO.getName().contains("管理员") || roleDO.getCode().contains("admin")).findAny();
// // 是创建者 或者 是 租户的管理员,可以更改项目
actions.put("edit",this.getCreator().equals(loginUser.getId().toString()) || admin.isPresent());
// 应该加上,项目下面没有运行中的任务才可以删除 ,或者是在删除部分再做判断 ,此处只做权限显示
actions.put("delete",this.getCreator().equals(loginUser.getId().toString()) || admin.isPresent());
return actions;
}
} }

28
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/project/ProjectDO.java

@ -1,10 +1,16 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.project; package cn.iocoder.yudao.module.farm.dal.dataobject.project;
import cn.hutool.extra.spring.SpringUtil;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.farm.enums.ProjectStateEnum; import cn.iocoder.yudao.module.farm.enums.ProjectStateEnum;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.dict.Dict; import cn.iocoder.yudao.module.system.dict.Dict;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Maps;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -81,4 +87,26 @@ public class ProjectDO extends BaseDO {
@Dict(dictTable = "system_dept",dicCode = "id",dicText = "name") @Dict(dictTable = "system_dept",dicCode = "id",dicText = "name")
private Long deptId; private Long deptId;
@TableField(exist = false)
private Map<String, Boolean> actions;
public Map<String, Boolean> getActions() {
actions = Maps.newHashMap();
// 当前用户是否有资格编辑删除这个项目
RoleService roleService = SpringUtil.getBean("roleServiceImpl");
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null;
List<RoleDO> roles = roleService.getRolesFromCache(loginUser.getRoleIds());
Optional<RoleDO> admin = roles.stream().filter(roleDO -> roleDO.getName().contains("管理员") || roleDO.getCode().contains("admin")).findAny();
// 是创建者 或者 是 租户的管理员,可以更改项目
actions.put("edit",getCreator().equals(loginUser.getId().toString()) || admin.isPresent());
// 应该加上,项目下面没有运行中的任务才可以删除 ,或者是在删除部分再做判断 ,此处只做权限显示
actions.put("delete",getCreator().equals(loginUser.getId().toString()) || admin.isPresent());
return actions;
}
} }

1
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/project/ProjectServiceImpl.java

@ -159,7 +159,6 @@ public class ProjectServiceImpl implements ProjectService {
} }
queryWrapperX.orderByDesc(ProjectDO::getId); queryWrapperX.orderByDesc(ProjectDO::getId);
projectMapper.selectList(queryWrapperX);
PageParam pageParam = new PageParam(); PageParam pageParam = new PageParam();
pageParam.setPageNo(pageDTO.getPageNum()); pageParam.setPageNo(pageDTO.getPageNum());
pageParam.setPageSize(pageDTO.getPageSize()); pageParam.setPageSize(pageDTO.getPageSize());

Loading…
Cancel
Save