任务 和 项目 actions权限
This commit is contained in:
+29
-1
@@ -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
@@ -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
@@ -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());
|
||||||
|
|||||||
Reference in New Issue
Block a user