feat:(REQ-2993) 数据权限调整

1、增加 包含班组/不包含班组 的纬度
2、调整之前的数据权限选项
This commit is contained in:
周敏 2024-11-06 18:28:29 +08:00
parent 7ef955f06e
commit b37690a476
8 changed files with 80 additions and 35 deletions

View File

@ -1,41 +1,46 @@
package cn.axzo.tyr.client.common.enums;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Getter
@AllArgsConstructor
public enum AttrPermissionEnum {
SELF_ONLY(1, "本人数据"),
SELF_SUBORDINATE(2, "本人及下属数据"),
DEPARTMENT_ONLY(3, "本部门数据"),
public enum AttrPermissionEnum{
SELF_ONLY(1, "本人数据", true, true),
SELF_SUBORDINATE(2, "下属数据", true, true),
DEPARTMENT_ONLY(3, "本部门数据", true, true),
DEPARTMENT_SUBORDINATE(4, "本部门及以下数据"),
DEPARTMENT_SUBORDINATE(4, "直属下级部门数据", true, true),
UNIT_ONLY(5, "本单位数据(包含班组)"),
UNIT_ONLY(5, "本单位数据", true, true),
UNIT_DIRECT_SUBORDINATE(6, "本单位及下级直属单位数据"),
UNIT_DIRECT_SUBORDINATE(6, "直属下级单位数据", false, true),
UNIT_COOPERATE_SUBORDINATE(7, "本单位及下级协同(直属+合作)单位数据"),
UNIT_COOPERATE_SUBORDINATE(7, "下级单位数据", false, true),
UNIT_ALL_SUBORDINATE(8, "本单位及以下协同(直属+合作)单位数据"),
WORKSPACE(9, "本项目数据"),
EQUAL_TO_ROW(10, "同行级数据权限"),
WORKSPACE(8, "本项目部数据", false, true),
UNIT_ONLY_EXCLUDE_TEAM(11, "仅本单位数据(不包含班组)"),
EQUAL_TO_ROW(999, "同行级数据权限", true, true),
;
private final Integer value;
private final String desc;
private final Boolean supportedNotWorkspace;
private final Boolean supportedWorkspace;
private static final List<AttrPermissionEnum> ROW_PERMISSION_FOR_WORKSPACE = Arrays.stream(AttrPermissionEnum.values())
.filter(rp -> rp.supportedWorkspace).collect(Collectors.toList());
private static final List<AttrPermissionEnum> ROW_PERMISSION_FOR_NOT_WORKSPACE = Arrays.stream(AttrPermissionEnum.values())
.filter(rp -> rp.supportedNotWorkspace).collect(Collectors.toList());
public static List<AttrPermissionEnum> listAttrPermissionForWorkspace() {
return Lists.newArrayList(AttrPermissionEnum.values());
return ROW_PERMISSION_FOR_WORKSPACE;
}
public static List<AttrPermissionEnum> listAttrPermissionForNotWorkspace() {
return Lists.newArrayList(SELF_ONLY, SELF_SUBORDINATE,
DEPARTMENT_ONLY, DEPARTMENT_SUBORDINATE, UNIT_ONLY, UNIT_ONLY_EXCLUDE_TEAM, EQUAL_TO_ROW);
return ROW_PERMISSION_FOR_NOT_WORKSPACE;
}
}

View File

@ -0,0 +1,21 @@
package cn.axzo.tyr.client.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
public class DataObjectEnums {
/**
* 是否包含班组
*/
@Getter
@AllArgsConstructor
public enum TeamInclusionEnum {
INCLUDE(1, "包含班组/小组", "包含班组"),
EXCLUDE(2, "不包含班组/小组", "不包含班组");
private final Integer value;
private final String descInWorkspace;
private final String descNotInWorkspace;
}
}

View File

@ -16,6 +16,9 @@ public enum EnumTypeEnum {
ROW_PERMISSION_AND_WORKSPACE(3, "行级权限规则&项目数据权限"),
ATTR_PERMISSION_AND_NOT_WORKSPACE(4, "字段值查看范围&单位/OMS/政务监管平台的数据权限"),
ATTR_PERMISSION_AND_WORKSPACE(5, "字段值查看范围&项目数据权限"),
TEAM_INCLUSION_AND_NOT_WORKSPACE(6, "是否包含班组"),
TEAM_INCLUSION_AND_WORKSPACE(7, "是否包含班组/小组"),
;
public final Integer value;

View File

@ -1,10 +1,11 @@
package cn.axzo.tyr.client.common.enums;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 行级权限规则
@ -12,38 +13,36 @@ import java.util.List;
@Getter
@AllArgsConstructor
public enum RowPermissionEnum {
SELF_ONLY(1, "本人数据"),
SELF_SUBORDINATE(2, "本人及下属数据"),
DEPARTMENT_ONLY(3, "本部门数据"),
SELF_ONLY(1, "本人数据", true, true),
SELF_SUBORDINATE(2, "下属数据", true, true),
DEPARTMENT_ONLY(3, "本部门数据", true, true),
DEPARTMENT_SUBORDINATE(4, "本部门及以下数据"),
DEPARTMENT_SUBORDINATE(4, "直属下级部门数据", true, true),
UNIT_ONLY(5, "本单位数据(包含班组)"),
UNIT_ONLY(5, "本单位数据", true, true),
UNIT_DIRECT_SUBORDINATE(6, "本单位及下级直属单位数据"),
UNIT_DIRECT_SUBORDINATE(6, "直属下级单位数据", false, true),
UNIT_COOPERATE_SUBORDINATE(7, "本单位及下级协同(直属+合作)单位数据"),
UNIT_ALL_SUBORDINATE(8, "本单位及以下协同(直属+合作)单位数据"),
WORKSPACE(9, "本项目部数据"),
UNIT_ONLY_EXCLUDE_TEAM(10, "仅本单位数据(不包含班组)"),
;
UNIT_COOPERATE_SUBORDINATE(7, "下级单位数据", false, true),
WORKSPACE(8, "本项目部数据", false, true);
private final Integer value;
private final String desc;
private final Boolean supportedNotWorkspace;
private final Boolean supportedWorkspace;
private static final List<RowPermissionEnum> ROW_PERMISSION_FOR_WORKSPACE = Arrays.stream(RowPermissionEnum.values())
.filter(rp -> rp.supportedWorkspace).collect(Collectors.toList());
private static final List<RowPermissionEnum> ROW_PERMISSION_FOR_NOT_WORKSPACE = Arrays.stream(RowPermissionEnum.values())
.filter(rp -> rp.supportedNotWorkspace).collect(Collectors.toList());
public static List<RowPermissionEnum> listRowPermissionForWorkspace() {
return Lists.newArrayList(RowPermissionEnum.values());
return ROW_PERMISSION_FOR_WORKSPACE;
}
public static List<RowPermissionEnum> listRowPermissionForNotWorkspace() {
return Lists.newArrayList(SELF_ONLY, SELF_SUBORDINATE,
DEPARTMENT_ONLY, DEPARTMENT_SUBORDINATE, UNIT_ONLY, UNIT_ONLY_EXCLUDE_TEAM);
return ROW_PERMISSION_FOR_NOT_WORKSPACE;
}
}

View File

@ -54,6 +54,10 @@ public class DataObjectRuleBO {
* 9:本项目部数据 10:仅本单位数据(不包含班组)
*/
private Integer rowPermission;
/**
* 是否包含班组1 = 包含2 = 不包含
*/
private Integer teamInclusion;
/**
* 字段级权限规则
*/

View File

@ -36,6 +36,10 @@ public class DefaultDataObjectRuleBO {
* 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目数据
*/
private Integer rowPermission;
/**
* 是否包含班组1 = 包含2 = 不包含
*/
private Integer teamInclusion;
/**
* 字段级权限规则
*/

View File

@ -5,6 +5,7 @@ import cn.axzo.framework.domain.ServiceException;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.common.annotation.RepeatedSubmit;
import cn.axzo.tyr.client.common.enums.AttrPermissionEnum;
import cn.axzo.tyr.client.common.enums.DataObjectEnums;
import cn.axzo.tyr.client.common.enums.EnumTypeEnum;
import cn.axzo.tyr.client.common.enums.ReturnCodeEnum;
import cn.axzo.tyr.client.common.enums.RowPermissionEnum;
@ -76,6 +77,10 @@ public class DataObjectController implements DataObjectApi {
return ApiResult.ok(AttrPermissionEnum.listAttrPermissionForNotWorkspace().stream().map(e -> EnumRes.builder().value(e.getValue()).desc(e.getDesc()).build()).collect(Collectors.toList()));
case ATTR_PERMISSION_AND_WORKSPACE:
return ApiResult.ok(AttrPermissionEnum.listAttrPermissionForWorkspace().stream().map(e -> EnumRes.builder().value(e.getValue()).desc(e.getDesc()).build()).collect(Collectors.toList()));
case TEAM_INCLUSION_AND_NOT_WORKSPACE:
return ApiResult.ok(Arrays.stream(DataObjectEnums.TeamInclusionEnum.values()).map(e -> EnumRes.builder().value(e.getValue()).desc(e.getDescNotInWorkspace()).build()).collect(Collectors.toList()));
case TEAM_INCLUSION_AND_WORKSPACE:
return ApiResult.ok(Arrays.stream(DataObjectEnums.TeamInclusionEnum.values()).map(e -> EnumRes.builder().value(e.getValue()).desc(e.getDescInWorkspace()).build()).collect(Collectors.toList()));
default:
throw new ServiceException(ReturnCodeEnum.TYPE_UNKNOWN.getMessage());
}

View File

@ -37,6 +37,10 @@ public class DataObjectRule extends BaseOperatorEntity<DataObjectRule> implement
* 5:仅本单位数据 6:本单位及下级直属单位数据 7:本单位及下级协同直属+合作单位数据 8:本单位及以下协同直属+合作单位数据 9:本项目数据
*/
private Integer rowPermission;
/**
* 是否包含班组1 = 包含2 = 不包含
*/
private Integer teamInclusion;
/**
* 规则范围 1岗位 2角色
*/