增加userScope

This commit is contained in:
金海洋 2024-01-22 13:24:36 +08:00
parent 45392def4b
commit 374dd3c534
10 changed files with 199 additions and 11 deletions

View File

@ -5,9 +5,29 @@ Content-Type: application/json
{ {
"name": "项目部通讯录列表", "name": "项目部通讯录列表",
"attrs": [{"label": "用户名", "attr": "name"}, {"label": "用户Id", "attr": "id"}, {"label": "手机号", "attr": "phone"}], "attrs": [
"resourceScope": [{"attr": "dataPermission", "operation": "in", "value": ["WORKSPACE_SUPERIOR"]}], {
"resourceCode": "workspaceContact", "label": "用户名",
"attr": "name"
},
{
"label": "用户Id",
"attr": "id"
},
{
"label": "手机号",
"attr": "phone"
}
],
"resourceScope": {
"op": "and",
"rules": [{"attr": "dataPermission", "op": "in", "value": ["WORKSPACE_SUPERIOR"]}],
"groups": [
{ "op": "or",
"rules": [{"attr": "dataPermission1", "op": "eq", "value": ["1"]},{"attr": "dataPermission2", "op": "eq", "value": ["1"]}]}
]
},
"resourceCode": "workspaceContact1",
"module": "PROJECT" "module": "PROJECT"
} }

View File

@ -0,0 +1,28 @@
package cn.axzo.tyr.client.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author haiyangjin
* @date 2024/1/21
*/
@Getter
@AllArgsConstructor
public enum DataResourceOperationEnum {
/**
* 数据资源操作类型
*/
READ("READ", ""),
/**
* 数据资源操作类型
*/
WRITE("WRITE", ""),
;
@EnumValue
private final String value;
private final String desc;
}

View File

@ -0,0 +1,33 @@
package cn.axzo.tyr.client.model.dataresource;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author haiyangjin
* @date 2024/1/21
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DataResourceRuleDTO {
/**
* 属性
*/
private String attr;
/**
* 操作符
*/
private String op;
/**
* 属性值
*/
private List<String> value;
}

View File

@ -19,15 +19,15 @@ public class ResourceScope {
/** /**
* 属性 * 属性
*/ */
private String attr; private List<DataResourceRuleDTO> rules;
/** /**
* 操作符 * 操作符 and 或者 or
*/ */
private String operation; private String op;
/** /**
* 属性值 * 属性值
*/ */
private List<String> value; private List<ResourceScope> groups;
} }

View File

@ -0,0 +1,33 @@
package cn.axzo.tyr.client.model.dataresource;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author haiyangjin
* @date 2024/1/19
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserScope {
/**
* 用户属性
*/
private List<UserScopeRuleDTO> rules;
/**
* 操作符 and 或者 or
*/
private String op;
/**
* 属性值
*/
private List<UserScope> groups;
}

View File

@ -0,0 +1,33 @@
package cn.axzo.tyr.client.model.dataresource;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author haiyangjin
* @date 2024/1/21
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserScopeRuleDTO {
/**
* 属性
*/
private String attr;
/**
* 操作符
*/
private String op;
/**
* 属性值
*/
private List<String> value;
}

View File

@ -1,11 +1,14 @@
package cn.axzo.tyr.client.model.dataresource.req; package cn.axzo.tyr.client.model.dataresource.req;
import cn.axzo.tyr.client.common.enums.DataResourceModuleEnum; import cn.axzo.tyr.client.common.enums.DataResourceModuleEnum;
import cn.axzo.tyr.client.common.enums.DataResourceOperationEnum;
import cn.axzo.tyr.client.common.enums.DataResourceTypeEnum; import cn.axzo.tyr.client.common.enums.DataResourceTypeEnum;
import cn.axzo.tyr.client.model.dataresource.DataResourceAttrs; import cn.axzo.tyr.client.model.dataresource.DataResourceAttrs;
import cn.axzo.tyr.client.model.dataresource.ResourceScope; import cn.axzo.tyr.client.model.dataresource.ResourceScope;
import cn.axzo.tyr.client.model.dataresource.UserScope;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Builder.Default;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -49,14 +52,26 @@ public class CreateDataResourceParam {
/** /**
* 数据范围 * 数据范围
*/ */
private List<ResourceScope> resourceScope; private ResourceScope resourceScope;
/** /**
* 数据对象类型0:主对象1:子对象 * 用户范围
*/
private UserScope userScope;
/**
* 数据资源类型0:主对象1:子对象
* @see DataResourceTypeEnum * @see DataResourceTypeEnum
*/ */
private DataResourceTypeEnum type; private DataResourceTypeEnum type;
/**
* 数据资源操作类型
* @see DataResourceOperationEnum
*/
@Default
private DataResourceOperationEnum operation = DataResourceOperationEnum.READ;
/** /**
* 数据对象code * 数据对象code
*/ */

View File

@ -1,9 +1,11 @@
package cn.axzo.tyr.client.model.dataresource.resp; package cn.axzo.tyr.client.model.dataresource.resp;
import cn.axzo.tyr.client.common.enums.DataResourceModuleEnum; import cn.axzo.tyr.client.common.enums.DataResourceModuleEnum;
import cn.axzo.tyr.client.common.enums.DataResourceOperationEnum;
import cn.axzo.tyr.client.common.enums.DataResourceTypeEnum; import cn.axzo.tyr.client.common.enums.DataResourceTypeEnum;
import cn.axzo.tyr.client.model.dataresource.DataResourceAttrs; import cn.axzo.tyr.client.model.dataresource.DataResourceAttrs;
import cn.axzo.tyr.client.model.dataresource.ResourceScope; import cn.axzo.tyr.client.model.dataresource.ResourceScope;
import cn.axzo.tyr.client.model.dataresource.UserScope;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -32,6 +34,11 @@ public class DataResourceResp implements Serializable {
*/ */
private String name; private String name;
/**
* 数据对象操作类型
*/
private DataResourceOperationEnum operation;
/** /**
* 模块名称 eg. 企业ENTERPRISE, 项目PROJECT * 模块名称 eg. 企业ENTERPRISE, 项目PROJECT
*/ */
@ -52,6 +59,11 @@ public class DataResourceResp implements Serializable {
*/ */
private List<ResourceScope> resourceScope; private List<ResourceScope> resourceScope;
/**
* 用户范围
*/
private List<UserScope> userScope;
/** /**
* 数据对象类型0:主对象1:子对象 * 数据对象类型0:主对象1:子对象
*/ */

View File

@ -2,9 +2,11 @@ package cn.axzo.tyr.server.repository.entity;
import cn.axzo.framework.data.mybatisplus.model.BaseEntity; import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
import cn.axzo.tyr.client.common.enums.DataResourceModuleEnum; import cn.axzo.tyr.client.common.enums.DataResourceModuleEnum;
import cn.axzo.tyr.client.common.enums.DataResourceOperationEnum;
import cn.axzo.tyr.client.common.enums.DataResourceTypeEnum; import cn.axzo.tyr.client.common.enums.DataResourceTypeEnum;
import cn.axzo.tyr.client.model.dataresource.DataResourceAttrs; import cn.axzo.tyr.client.model.dataresource.DataResourceAttrs;
import cn.axzo.tyr.client.model.dataresource.ResourceScope; import cn.axzo.tyr.client.model.dataresource.ResourceScope;
import cn.axzo.tyr.client.model.dataresource.UserScope;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
@ -56,7 +58,13 @@ public class DataResource extends BaseEntity<DataResource> implements Serializab
* 数据范围 * 数据范围
*/ */
@TableField(value = "resource_scope", typeHandler = FastjsonTypeHandler.class) @TableField(value = "resource_scope", typeHandler = FastjsonTypeHandler.class)
private List<ResourceScope> resourceScope; private ResourceScope resourceScope;
/**
* 用户范围
*/
@TableField(value = "user_scope", typeHandler = FastjsonTypeHandler.class)
private UserScope userScope;
/** /**
* 数据对象类型0:主对象1:子对象 * 数据对象类型0:主对象1:子对象
@ -64,6 +72,12 @@ public class DataResource extends BaseEntity<DataResource> implements Serializab
@TableField("type") @TableField("type")
private DataResourceTypeEnum type; private DataResourceTypeEnum type;
/**
* 数据对象类型0:主对象1:子对象
*/
@TableField("operation")
private DataResourceOperationEnum operation;
/** /**
* 数据对象code * 数据对象code
*/ */

View File

@ -60,7 +60,7 @@ public class DataResourceServiceImpl implements DataResourceService {
DataResource dataResource = new DataResource(); DataResource dataResource = new DataResource();
BeanUtils.copyProperties(param, dataResource); BeanUtils.copyProperties(param, dataResource);
if (param.getParentId() > 0) { if (Objects.nonNull(param.getParentId()) && param.getParentId() > 0) {
DataResource parent = dataResourceDao.getById(param.getParentId()); DataResource parent = dataResourceDao.getById(param.getParentId());
if (Objects.isNull(parent)) { if (Objects.isNull(parent)) {
Throws.bizException(BaseCode.BAD_REQUEST, "数据对象不存在!"); Throws.bizException(BaseCode.BAD_REQUEST, "数据对象不存在!");