|
|
|
@ -1,12 +1,21 @@
|
|
|
|
|
package cn.iocoder.yudao.module.farm.controller.admin.project.vo; |
|
|
|
|
|
|
|
|
|
import cn.hutool.json.JSON; |
|
|
|
|
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.dal.dataobject.project.ProjectDO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.enums.ProjectStateEnum; |
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; |
|
|
|
|
import cn.iocoder.yudao.module.system.service.permission.RoleService; |
|
|
|
|
import cn.iocoder.yudao.module.system.service.permission.RoleServiceImpl; |
|
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
|
import com.google.common.collect.Maps; |
|
|
|
|
import lombok.*; |
|
|
|
|
import java.util.*; |
|
|
|
|
import io.swagger.annotations.*; |
|
|
|
|
import javax.validation.constraints.*; |
|
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.format.annotation.DateTimeFormat; |
|
|
|
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
|
|
|
@ -16,7 +25,8 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
|
|
|
|
|
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 |
|
|
|
|
*/ |
|
|
|
|
@Data |
|
|
|
|
public class ProjectBaseVO { |
|
|
|
|
public class ProjectBaseVO extends ProjectDO { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ApiModelProperty(value = "") |
|
|
|
|
private String name; |
|
|
|
@ -54,4 +64,27 @@ public class ProjectBaseVO {
|
|
|
|
|
|
|
|
|
|
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",getCreator().equals(loginUser.getId().toString()) || admin.isPresent()); |
|
|
|
|
|
|
|
|
|
// 应该加上,项目下面没有运行中的任务才可以删除 ,或者是在删除部分再做判断 ,此处只做权限显示
|
|
|
|
|
actions.put("delete",getCreator().equals(loginUser.getId().toString()) || admin.isPresent()); |
|
|
|
|
|
|
|
|
|
return actions; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|