一、场景

同一个看板,不同层级的用户,进来只能看到对应层级的数据

示例场景:

销售组长:其管辖范围内的各组数据

销售总监:全部数据

二、配置示例

1、准备数据集

数据集名称:24年11月订单明细

查询出 订单顾问(重要,后面会用)、payment_id、支付成功时间

2、图表制作

将字段拖拽到图表中,保存。

图表名称:【图表】24年11月支付成功订单明细

3、新建看板

将图表拖拽到看板中,保存。

看板名称:【看板】24年11月支付成功订单

4、准备用户权限表

user_name:需要与数据集中的 姓名 字段的 保持一致

level1_post_name:需要与数据集中的 一级架构 字段的 保持一致

level2_post_name:需要与数据集中的 二级架构 字段的 保持一致

level3_post_name:需要与数据集中的 三级架构 字段的 保持一致

email:需要与 登录用户的邮箱 保持一致

5、创建行权限角色

仅需要填写角色名称即可,保存

6、创建行权限过滤规则

6.1. 选择需要做数据行权限过滤的数据集

6.2. 选择受数据行权限过滤的角色

6.3. 填写行权限过滤规则,本次示例:

实现思路:将过滤语句拼在数据集sql后面,执行的结果与实际想要的是否匹配;

从权限表中查到当前登录用户的架构信息,再与数据集中符合条件的架构数据。

( 
    select 
        distinct level1_post_name 
    from upload_cc_user_permisson 
    where email = '{{current_email() }}' -- 当前登录用户邮箱
) like concat(concat('%', cc_level1_post_name ), '%') 
and ( 
    select 
        distinct level2_post_name 
    from upload_cc_user_permisson where email = '{{current_email() }}'
) like concat(concat('%', cc_level2_post_name ), '%') 
and ( 
    select 
        distinct level3_post_name 
    from upload_cc_user_permisson 
    where email = '{{current_email() }}'
) like concat(concat('%', cc_level3_post_name ), '%')

7、将需要使用数据行权限过滤的用户,添加到角色中

8、最终效果

注:需要将空替换为‘null’字符串

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐