提交 1e60188a authored 作者: taojinlong's avatar taojinlong

feat(数据源): 数据集行权限

上级 94cb9b45
......@@ -207,7 +207,7 @@
<dependency>
<groupId>io.dataease</groupId>
<artifactId>dataease-plugin-interface</artifactId>
<version>1.5</version>
<version>1.6</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
......@@ -387,34 +387,34 @@
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<?m2e execute onConfiguration?>
<id>main-class-placement</id>
<phase>generate-resources</phase>
<configuration>
<target>
<move todir="src/main/resources/static">
<fileset dir="../frontend/dist">
<exclude name="*.html"/>
</fileset>
</move>
<move todir="src/main/resources/templates">
<fileset dir="../frontend/dist">
<include name="*.html"/>
</fileset>
</move>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-antrun-plugin</artifactId>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <?m2e execute onConfiguration?>-->
<!-- <id>main-class-placement</id>-->
<!-- <phase>generate-resources</phase>-->
<!-- <configuration>-->
<!-- <target>-->
<!-- <move todir="src/main/resources/static">-->
<!-- <fileset dir="../frontend/dist">-->
<!-- <exclude name="*.html"/>-->
<!-- </fileset>-->
<!-- </move>-->
<!-- <move todir="src/main/resources/templates">-->
<!-- <fileset dir="../frontend/dist">-->
<!-- <include name="*.html"/>-->
<!-- </fileset>-->
<!-- </move>-->
<!-- </target>-->
<!-- </configuration>-->
<!-- <goals>-->
<!-- <goal>run</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
</plugins>
</build>
......
package io.dataease.base.domain;
import java.io.Serializable;
import lombok.Data;
@Data
public class DatasetRowPermissions implements Serializable {
private String id;
private String authTargetType;
private Long authTargetId;
private String datasetId;
private String datasetFieldId;
private String filter;
private Long updateTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package io.dataease.base.mapper;
import io.dataease.base.domain.DatasetRowPermissions;
import io.dataease.base.domain.DatasetRowPermissionsExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface DatasetRowPermissionsMapper {
long countByExample(DatasetRowPermissionsExample example);
int deleteByExample(DatasetRowPermissionsExample example);
int deleteByPrimaryKey(String id);
int insert(DatasetRowPermissions record);
int insertSelective(DatasetRowPermissions record);
List<DatasetRowPermissions> selectByExample(DatasetRowPermissionsExample example);
DatasetRowPermissions selectByPrimaryKey(String id);
int updateByExampleSelective(@Param("record") DatasetRowPermissions record, @Param("example") DatasetRowPermissionsExample example);
int updateByExample(@Param("record") DatasetRowPermissions record, @Param("example") DatasetRowPermissionsExample example);
int updateByPrimaryKeySelective(DatasetRowPermissions record);
int updateByPrimaryKey(DatasetRowPermissions record);
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.dataease.base.mapper.DatasetRowPermissionsMapper">
<resultMap id="BaseResultMap" type="io.dataease.base.domain.DatasetRowPermissions">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="auth_target_type" jdbcType="VARCHAR" property="authTargetType" />
<result column="auth_target_id" jdbcType="BIGINT" property="authTargetId" />
<result column="dataset_id" jdbcType="VARCHAR" property="datasetId" />
<result column="dataset_field_id" jdbcType="VARCHAR" property="datasetFieldId" />
<result column="filter" jdbcType="VARCHAR" property="filter" />
<result column="update_time" jdbcType="BIGINT" property="updateTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, auth_target_type, auth_target_id, dataset_id, dataset_field_id, `filter`, update_time
</sql>
<select id="selectByExample" parameterType="io.dataease.base.domain.DatasetRowPermissionsExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from dataset_row_permissions
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from dataset_row_permissions
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from dataset_row_permissions
where id = #{id,jdbcType=VARCHAR}
</delete>
<delete id="deleteByExample" parameterType="io.dataease.base.domain.DatasetRowPermissionsExample">
delete from dataset_row_permissions
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="io.dataease.base.domain.DatasetRowPermissions">
insert into dataset_row_permissions (id, auth_target_type, auth_target_id,
dataset_id, dataset_field_id, `filter`,
update_time)
values (#{id,jdbcType=VARCHAR}, #{authTargetType,jdbcType=VARCHAR}, #{authTargetId,jdbcType=BIGINT},
#{datasetId,jdbcType=VARCHAR}, #{datasetFieldId,jdbcType=VARCHAR}, #{filter,jdbcType=VARCHAR},
#{updateTime,jdbcType=BIGINT})
</insert>
<insert id="insertSelective" parameterType="io.dataease.base.domain.DatasetRowPermissions">
insert into dataset_row_permissions
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="authTargetType != null">
auth_target_type,
</if>
<if test="authTargetId != null">
auth_target_id,
</if>
<if test="datasetId != null">
dataset_id,
</if>
<if test="datasetFieldId != null">
dataset_field_id,
</if>
<if test="filter != null">
`filter`,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="authTargetType != null">
#{authTargetType,jdbcType=VARCHAR},
</if>
<if test="authTargetId != null">
#{authTargetId,jdbcType=BIGINT},
</if>
<if test="datasetId != null">
#{datasetId,jdbcType=VARCHAR},
</if>
<if test="datasetFieldId != null">
#{datasetFieldId,jdbcType=VARCHAR},
</if>
<if test="filter != null">
#{filter,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="io.dataease.base.domain.DatasetRowPermissionsExample" resultType="java.lang.Long">
select count(*) from dataset_row_permissions
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update dataset_row_permissions
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=VARCHAR},
</if>
<if test="record.authTargetType != null">
auth_target_type = #{record.authTargetType,jdbcType=VARCHAR},
</if>
<if test="record.authTargetId != null">
auth_target_id = #{record.authTargetId,jdbcType=BIGINT},
</if>
<if test="record.datasetId != null">
dataset_id = #{record.datasetId,jdbcType=VARCHAR},
</if>
<if test="record.datasetFieldId != null">
dataset_field_id = #{record.datasetFieldId,jdbcType=VARCHAR},
</if>
<if test="record.filter != null">
`filter` = #{record.filter,jdbcType=VARCHAR},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update dataset_row_permissions
set id = #{record.id,jdbcType=VARCHAR},
auth_target_type = #{record.authTargetType,jdbcType=VARCHAR},
auth_target_id = #{record.authTargetId,jdbcType=BIGINT},
dataset_id = #{record.datasetId,jdbcType=VARCHAR},
dataset_field_id = #{record.datasetFieldId,jdbcType=VARCHAR},
`filter` = #{record.filter,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="io.dataease.base.domain.DatasetRowPermissions">
update dataset_row_permissions
<set>
<if test="authTargetType != null">
auth_target_type = #{authTargetType,jdbcType=VARCHAR},
</if>
<if test="authTargetId != null">
auth_target_id = #{authTargetId,jdbcType=BIGINT},
</if>
<if test="datasetId != null">
dataset_id = #{datasetId,jdbcType=VARCHAR},
</if>
<if test="datasetFieldId != null">
dataset_field_id = #{datasetFieldId,jdbcType=VARCHAR},
</if>
<if test="filter != null">
`filter` = #{filter,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="io.dataease.base.domain.DatasetRowPermissions">
update dataset_row_permissions
set auth_target_type = #{authTargetType,jdbcType=VARCHAR},
auth_target_id = #{authTargetId,jdbcType=BIGINT},
dataset_id = #{datasetId,jdbcType=VARCHAR},
dataset_field_id = #{datasetFieldId,jdbcType=VARCHAR},
`filter` = #{filter,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=BIGINT}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
package io.dataease.base.mapper.ext;
import io.dataease.base.domain.DatasetRowPermissions;
import io.dataease.base.mapper.ext.query.GridExample;
import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.controller.sys.response.RoleUserItem;
import io.dataease.dto.dataset.DataSetRowPermissionsDTO;
import io.dataease.dto.dataset.DataSetTableDTO;
import java.util.List;
......@@ -14,11 +10,4 @@ public interface ExtDataSetTableMapper {
DataSetTableDTO searchOne(DataSetTableRequest request);
List<DataSetRowPermissionsDTO> searchRowPermissons(GridExample example);
List<RoleUserItem> searchAuthUsers(DatasetRowPermissions example);
List<RoleUserItem> searchAuthRoles(DatasetRowPermissions example);
List<RoleUserItem> searchAuthDepts(DatasetRowPermissions example);
}
......@@ -7,9 +7,6 @@
<result column="privileges" property="privileges"/>
</resultMap>
<resultMap id="RowPermissonsDTO" type="io.dataease.dto.dataset.DataSetRowPermissionsDTO"
extends="io.dataease.base.mapper.DatasetRowPermissionsMapper.BaseResultMap">
</resultMap>
<resultMap id="roleItemMap" type="io.dataease.controller.sys.response.RoleUserItem">
<id property="id" column="id"/>
......@@ -103,58 +100,4 @@
ORDER BY CONVERT(`name` using gbk)
</select>
<select id="searchRowPermissons" resultMap="RowPermissonsDTO" parameterType="io.dataease.base.mapper.ext.query.GridExample">
SELECT dataset_table.name as datasetName, dataset_table_field.name as fieldName, dataset_row_permissions.*
FROM dataset_row_permissions
left join dataset_table on dataset_table.id=dataset_row_permissions.dataset_id
left join dataset_table_field on dataset_table_field.id=dataset_row_permissions.dataset_field_id
<if test="_parameter != null">
<include refid="io.dataease.base.mapper.ext.query.GridSql.gridCondition" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
<if test="orderByClause == null">
order by dataset_row_permissions.update_time desc
</if>
</select>
<select id="searchAuthUsers" resultMap="roleItemMap">
SELECT sys_user.user_id as id, sys_user.username as name
FROM sys_auth
left join sys_auth_detail on sys_auth.id=sys_auth_detail.auth_id
left join sys_user on sys_user.user_id=sys_auth.auth_target
where sys_auth.auth_target_type='user'
and sys_auth.auth_source_type='dataset'
and sys_auth.auth_source=#{datasetId,jdbcType=VARCHAR}
and sys_auth_detail.privilege_type=1
and sys_auth_detail.privilege_value=1;
</select>
<select id="searchAuthRoles" resultMap="roleItemMap">
SELECT sys_role.role_id as id, sys_role.name as name
FROM sys_auth
left join sys_auth_detail on sys_auth.id=sys_auth_detail.auth_id
left join sys_role on sys_role.role_id=sys_auth.auth_target
where sys_auth.auth_target_type='role'
and sys_auth.auth_source_type='dataset'
and sys_auth.auth_source=#{datasetId,jdbcType=VARCHAR}
and sys_auth_detail.privilege_type=1
and sys_auth_detail.privilege_value=1;
</select>
<select id="searchAuthDepts" resultMap="roleItemMap">
SELECT sys_dept.dept_id as id, sys_dept.name as name
FROM sys_auth
left join sys_auth_detail on sys_auth.id=sys_auth_detail.auth_id
left join sys_dept on sys_dept.dept_id=sys_auth.auth_target
where sys_auth.auth_target_type='dept'
and sys_auth.auth_source_type='dataset'
and sys_auth.auth_source=#{datasetId,jdbcType=VARCHAR}
and sys_auth_detail.privilege_type=1
and sys_auth_detail.privilege_value=1;
</select>
</mapper>
......@@ -19,7 +19,7 @@ public class DefaultLicenseService {
private InnerLicenseService innerLicenseService;
private static final String LICENSE_ID = "fit2cloud_license";
private static final String validatorUtil = "/usr/bin/validator";
private static final String validatorUtil = "/usr/local/bin/validator";
private static final String product = "DataEase";
public F2CLicenseResponse validateLicense(String product, String licenseKey) {
......
package io.dataease.controller.dataset;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.base.domain.DatasetRowPermissions;
import io.dataease.commons.utils.PageUtils;
import io.dataease.commons.utils.Pager;
import io.dataease.controller.sys.base.BaseGridRequest;
import io.dataease.dto.dataset.DataSetRowPermissionsDTO;
import io.dataease.service.dataset.DataSetTableRowPermissionsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Api(tags = "数据集:数据集行权限")
@ApiSupport(order = 90)
@RestController
@RequestMapping("dataset/rowPermissions")
public class DataSetTableRowPermissionsController {
@Resource
private DataSetTableRowPermissionsService dataSetTableRowPermissionsService;
@ApiOperation("保存")
@PostMapping("save")
public void save(@RequestBody DatasetRowPermissions datasetRowPermissions) throws Exception {
dataSetTableRowPermissionsService.save(datasetRowPermissions);
}
@ApiOperation("分页查询")
@PostMapping("/pageList/{datasetId}/{goPage}/{pageSize}")
public Pager<List<DataSetRowPermissionsDTO>> rowPermissions(@PathVariable String datasetId, @PathVariable int goPage, @PathVariable int pageSize, @RequestBody BaseGridRequest request) {
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
return PageUtils.setPageInfo(page, dataSetTableRowPermissionsService.searchRowPermissions(request, datasetId));
}
@ApiOperation("有权限的对象")
@PostMapping("/authObjs")
public List<Object> authObjs(@RequestBody DataSetRowPermissionsDTO request) {
return (List<Object>) dataSetTableRowPermissionsService.authObjs(request);
}
@ApiOperation("详情")
@PostMapping("/dataSetRowPermissionInfo")
public DataSetRowPermissionsDTO dataSetRowPermissionInfo(@RequestBody DataSetRowPermissionsDTO request) {
return dataSetTableRowPermissionsService.dataSetRowPermissionInfo(request);
}
@ApiOperation("删除")
@PostMapping("/delete/{id}")
public void dataSetRowPermissionInfo(@PathVariable String id) {
dataSetTableRowPermissionsService.delete(id);
}
}
package io.dataease.dto.dataset;
import io.dataease.base.domain.DatasetRowPermissions;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @Author gin
* @Date 2021/3/9 3:19 下午
*/
@Getter
@Setter
public class DataSetRowPermissionsDTO extends DatasetRowPermissions {
@ApiModelProperty("数据集名称")
private String datasetName;
@ApiModelProperty("字段名称")
private String fieldName;
@ApiModelProperty("授权对象名称")
private String authTargetName;
}
package io.dataease.plugins.server;
import io.dataease.plugins.config.SpringContextUtil;
import io.dataease.plugins.xpack.auth.dto.request.DataSetRowPermissionsDTO;
import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions;
import io.dataease.plugins.xpack.auth.dto.response.XpackSysAuthDetailDTO;
import io.dataease.plugins.xpack.auth.service.RowPermissionService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("plugin/dataset/rowPermissions")
public class RowPermissionsController {
@ApiOperation("保存")
@PostMapping("save")
public void save(@RequestBody DatasetRowPermissions datasetRowPermissions) throws Exception {
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
rowPermissionService.save(datasetRowPermissions);
}
@ApiOperation("分页查询")
@PostMapping("/list")
public List<DataSetRowPermissionsDTO> rowPermissions(@RequestBody XpackSysAuthDetailDTO request) {
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
return rowPermissionService.searchRowPermissions(request);
}
@ApiOperation("删除")
@GetMapping("/delete/{id}")
public void dataSetRowPermissionInfo(@PathVariable String id) {
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
rowPermissionService.delete(id);
}
}
......@@ -42,12 +42,13 @@ public class XAuthServer {
public List<XpackSysAuthDetail>authDetailsModel(@PathVariable String authType){
AuthXpackService sysAuthService = SpringContextUtil.getBean(AuthXpackService.class);
List<XpackSysAuthDetail> authDetails = sysAuthService.searchAuthDetailsModel(authType);
// if(authType.equalsIgnoreCase("dataset")){
// XpackSysAuthDetail xpackSysAuthDetail = new XpackSysAuthDetail();
// xpackSysAuthDetail.setPrivilegeName("i18n_auth_row_permission");
// xpackSysAuthDetail.setPrivilegeType(20);
// authDetails.add(3,xpackSysAuthDetail);
// }
if(authType.equalsIgnoreCase("dataset")){
XpackSysAuthDetail xpackSysAuthDetail = new XpackSysAuthDetail();
xpackSysAuthDetail.setPrivilegeName("i18n_auth_row_permission");
xpackSysAuthDetail.setPrivilegeType(20);
xpackSysAuthDetail.setPrivilegeValue(1);
authDetails.add(0,xpackSysAuthDetail);
}
return authDetails;
}
......
package io.dataease.service.dataset;
import io.dataease.base.domain.DatasetRowPermissions;
import io.dataease.base.domain.DatasetRowPermissionsExample;
import io.dataease.base.mapper.DatasetRowPermissionsMapper;
import io.dataease.base.mapper.SysDeptMapper;
import io.dataease.base.mapper.SysRoleMapper;
import io.dataease.base.mapper.SysUserMapper;
import io.dataease.base.mapper.ext.ExtDataSetTableMapper;
import io.dataease.base.mapper.ext.query.GridExample;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.controller.sys.base.BaseGridRequest;
import io.dataease.controller.sys.base.ConditionEntity;
import io.dataease.dto.dataset.DataSetRowPermissionsDTO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@Service
@Transactional(rollbackFor = Exception.class)
public class DataSetTableRowPermissionsService {
@Resource
private ExtDataSetTableMapper extDataSetTableMapper;
@Resource
private DatasetRowPermissionsMapper datasetRowPermissionsMapper;
@Resource
private SysUserMapper sysUserMapper;
@Resource
private SysRoleMapper sysRoleMapper;
@Resource
private SysDeptMapper sysDeptMapper;
public List<DataSetRowPermissionsDTO> searchRowPermissions(BaseGridRequest request, String datasetId){
List<ConditionEntity> conditionEntities = request.getConditions() == null ? new ArrayList<>() : request.getConditions();
ConditionEntity entity = new ConditionEntity();
entity.setField("dataset_row_permissions.dataset_id");
entity.setOperator("eq");
entity.setValue(datasetId);
conditionEntities.add(entity);
request.setConditions(conditionEntities);
GridExample gridExample = request.convertExample();
gridExample.setExtendCondition(AuthUtils.getUser().getUserId().toString());
return extDataSetTableMapper.searchRowPermissons(gridExample);
}
public List<? extends Object> authObjs(DataSetRowPermissionsDTO request){
switch (request.getAuthTargetType()) {
case "user":
return extDataSetTableMapper.searchAuthUsers(request);
case "role":
return extDataSetTableMapper.searchAuthRoles(request);
case "dept":
return extDataSetTableMapper.searchAuthDepts(request);
default:
return new ArrayList<>();
}
}
public void save(DatasetRowPermissions datasetRowPermissions){
if(StringUtils.isEmpty(datasetRowPermissions.getId())){
datasetRowPermissions.setId(UUID.randomUUID().toString());
datasetRowPermissions.setUpdateTime(System.currentTimeMillis());
datasetRowPermissionsMapper.insert(datasetRowPermissions);
}else {
datasetRowPermissions.setUpdateTime(System.currentTimeMillis());
datasetRowPermissionsMapper.updateByPrimaryKey(datasetRowPermissions);
}
}
public DataSetRowPermissionsDTO dataSetRowPermissionInfo(DataSetRowPermissionsDTO datasetRowPermissions){
switch (datasetRowPermissions.getAuthTargetType()) {
case "user":
datasetRowPermissions.setAuthTargetName(Optional.ofNullable(sysUserMapper.selectByPrimaryKey(datasetRowPermissions.getAuthTargetId())).get().getUsername());
break;
case "role":
datasetRowPermissions.setAuthTargetName(Optional.ofNullable(sysRoleMapper.selectByPrimaryKey(datasetRowPermissions.getAuthTargetId())).get().getName());
break;
case "dept":
datasetRowPermissions.setAuthTargetName(Optional.ofNullable(sysDeptMapper.selectByPrimaryKey(datasetRowPermissions.getAuthTargetId())).get().getName());
break;
default:
break;
}
return datasetRowPermissions;
}
public void delete(String id){
datasetRowPermissionsMapper.deleteByPrimaryKey(id);
}
public List<DatasetRowPermissions> listDatasetRowPermissions(String datasetId, List<Long>authTargetIds, String authTargetType){
if(CollectionUtils.isEmpty(authTargetIds)){
return new ArrayList<>();
}
DatasetRowPermissionsExample example = new DatasetRowPermissionsExample();
example.createCriteria().andDatasetIdEqualTo(datasetId).andAuthTargetTypeEqualTo(authTargetType).andAuthTargetIdIn(authTargetIds);
return datasetRowPermissionsMapper.selectByExample(example);
}
}
......@@ -19,25 +19,23 @@ import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.controller.request.dataset.DataSetTaskRequest;
import io.dataease.controller.response.DataSetDetail;
import io.dataease.commons.constants.DatasourceTypes;
import io.dataease.dto.chart.ChartCustomFilterDTO;
import io.dataease.dto.datasource.TableFiled;
import io.dataease.plugins.config.SpringContextUtil;
import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions;
import io.dataease.plugins.xpack.auth.service.RowPermissionService;
import io.dataease.plugins.xpack.oidc.service.OidcXpackService;
import io.dataease.provider.datasource.DatasourceProvider;
import io.dataease.provider.datasource.JdbcProvider;
import io.dataease.provider.ProviderFactory;
import io.dataease.controller.request.datasource.DatasourceRequest;
import io.dataease.controller.response.DataSetDetail;
import io.dataease.dto.dataset.*;
import io.dataease.dto.dataset.union.UnionDTO;
import io.dataease.dto.dataset.union.UnionItemDTO;
import io.dataease.dto.dataset.union.UnionParamDTO;
import io.dataease.dto.datasource.TableFiled;
import io.dataease.dto.dataset.union.UnionParamDTO;;
import io.dataease.exception.DataEaseException;
import io.dataease.i18n.Translator;
import io.dataease.plugins.loader.ClassloaderResponsity;
import io.dataease.provider.ProviderFactory;
import io.dataease.provider.datasource.DatasourceProvider;
import io.dataease.provider.datasource.JdbcProvider;
import io.dataease.provider.query.DDLProvider;
import io.dataease.provider.query.QueryProvider;
import org.apache.commons.collections4.CollectionUtils;
......@@ -102,8 +100,6 @@ public class DataSetTableService {
private ExtDataSetGroupMapper extDataSetGroupMapper;
@Resource
private DatasetTableFieldMapper datasetTableFieldMapper;
@Resource
private DataSetTableRowPermissionsService dataSetTableRowPermissionsService;
private static final String lastUpdateTime = "${__last_update_time__}";
private static final String currentUpdateTime = "${__current_update_time__}";
......@@ -445,9 +441,14 @@ public class DataSetTableService {
private List<DatasetRowPermissions> rowPermissions(String datasetId){
List<DatasetRowPermissions> datasetRowPermissions = new ArrayList<>();
datasetRowPermissions.addAll(dataSetTableRowPermissionsService.listDatasetRowPermissions(datasetId, Collections.singletonList(AuthUtils.getUser().getUserId()), "user"));
datasetRowPermissions.addAll(dataSetTableRowPermissionsService.listDatasetRowPermissions(datasetId, AuthUtils.getUser().getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()) , "role"));
datasetRowPermissions.addAll(dataSetTableRowPermissionsService.listDatasetRowPermissions(datasetId, Collections.singletonList(AuthUtils.getUser().getDeptId()), "dept"));
Map<String, RowPermissionService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((RowPermissionService.class));
if(beansOfType.keySet().size() == 0) {
return new ArrayList<>();
}
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, Collections.singletonList(AuthUtils.getUser().getUserId()), "user"));
datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, AuthUtils.getUser().getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()) , "role"));
datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, Collections.singletonList(AuthUtils.getUser().getDeptId()), "dept"));
return datasetRowPermissions;
}
......@@ -467,7 +468,7 @@ public class DataSetTableService {
rowPermissions(datasetTable.getId()).forEach(datasetRowPermissions -> {
List<ChartCustomFilterDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterDTO.class);
lists.forEach(chartCustomFilterDTO -> {
DatasetTableField field = getFieldById(fields, chartCustomFilterDTO.getFieldId());
DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId());
if(field != null){
chartCustomFilterDTO.setFieldId(datasetRowPermissions.getDatasetFieldId());
chartCustomFilterDTO.setField(field);
......@@ -1686,7 +1687,7 @@ public class DataSetTableService {
dataSetDetail.setTable(table);
if (ObjectUtils.isNotEmpty(table)) {
Datasource datasource = datasourceMapper.selectByPrimaryKey(table.getDataSourceId());
datasource.setConfiguration(null);
Optional.ofNullable(datasource).orElse(new Datasource()).setConfiguration(null);
dataSetDetail.setDatasource(datasource);
}
return dataSetDetail;
......
......@@ -1154,6 +1154,16 @@ export default {
confirm_sync_field_tips: 'Sync field maybe change edit field,please confirm',
sync_success: 'Success',
sync_success_1: 'Success,please sync data again',
row_permission: {
type: 'Type',
name: 'Name',
condition: 'Conditions',
value: 'Value',
add: 'Add row permissions',
edit: 'Edit row permissions',
please_select_field: 'Please select a field'
},
row_permissions: 'Row Permissions',
union_data: 'Union Dataset',
add_union_table: 'Add Union Dataset',
edit_union: 'Edit Union Dataset',
......
......@@ -1155,6 +1155,16 @@ export default {
confirm_sync_field_tips: '同步字段可能會導致已編輯字段發生變更,請確認',
sync_success: '同步成功',
sync_success_1: '同步成功,請對當前數據集重新執行數據同步操作',
row_permission: {
type: '類型',
name: '名稱',
condition: '條件',
value: '值',
add: '添加行權限',
edit: '編輯行權限',
please_select_field: '請選擇字段'
},
row_permissions: '行權限',
union_data: '關聯數據集',
add_union_table: '添加關聯數據集',
edit_union: '編輯關聯數據集',
......
......@@ -1016,7 +1016,6 @@ export default {
field_check: '选中',
update_info: '更新信息',
join_view: '数据关联',
row_permissions: '行权限',
text: '文本',
time: '时间',
value: '数值',
......@@ -1164,8 +1163,10 @@ export default {
condition: '条件',
value: '值',
add: '添加行权限',
edit: '编辑行权限'
edit: '编辑行权限',
please_select_field: '请选择字段'
},
row_permissions: '行权限',
union_data: '关联数据集',
add_union_table: '添加关联数据集',
edit_union: '编辑关联数据集',
......
......@@ -59,9 +59,6 @@
<el-tab-pane v-if="table.type !== 'custom' && !(table.type === 'sql' && table.mode === 0)" :label="$t('dataset.join_view')" name="joinView">
<union-view :param="param" :table="table" />
</el-tab-pane>
<el-tab-pane :label="$t('dataset.row_permissions')" name="rowPermissions">
<row-permissions v-if="tabActive=='rowPermissions'" :param="param" :table="table" />
</el-tab-pane>
<el-tab-pane v-if="table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql')" :label="$t('dataset.update_info')" name="updateInfo">
<update-info v-if="tabActive=='updateInfo'" :param="param" :table="table" />
</el-tab-pane>
......@@ -75,12 +72,11 @@ import TabDataPreview from './TabDataPreview'
import UpdateInfo from './UpdateInfo'
import DatasetChartDetail from '../common/DatasetChartDetail'
import UnionView from './UnionView'
import RowPermissions from './RowPermissions'
import FieldEdit from './FieldEdit'
export default {
name: 'ViewTable',
components: {RowPermissions, FieldEdit, UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview },
components: {FieldEdit, UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview },
props: {
param: {
type: Object,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论