* 描述问题
设置的数据范围无法正常生效
* 运行环境
- NocoBase 版本: 1.3.42
- 数据库种类与版本: MySQL
- 操作系统: Ubuntu
- 部署方式: Docker
- Docker 镜像版本: nocobase/nocobase:1.3.42-beta
- NodeJS 版本:
如何重现
我创建了2个数据表,员工,客户。
员工表记录员工身份信息,通过一对一(belongto)关系给每个用户提供员工身份,外键为用户ID和员工ID。
客户表记录客户信息,客户表与员工表建立多对一关系(关系名:客户绑定销售),即每个员工联系多个客户,每个客户由一个员工负责(外键为销售)。
我创建了一个客户信息页面,添加了一个客户表格。我需要让每个员工只看到自己的客户,设置数据范围: 客户绑定销售/员工ID 等于 当前用户/员工ID/员工ID
但是添加数据范围之后,所有员工都无法看到任何客户。
以下为查询时对应的日志:
{“level”:“info”,“message”:“response /api/customers:list?pageSize=20&appends%5B%5D=customerLocation&appends%5B%5D=customerBindsale&appends%5B%5D=customerProjectIDs&filter=%7B%22%24and%22%3A%5B%7B%22customerBindsale%22%3A%7B%22employerID%22%3A%7B%22%24eq%22%3A%22%7B%7B%24user.userEmployerID.employerName%7D%7D%22%7D%7D%7D%5D%7D”,“method”:“GET”,“path”:“/api/customers:list?pageSize=20&appends%5B%5D=customerLocation&appends%5B%5D=customerBindsale&appends%5B%5D=customerProjectIDs&filter=%7B%22%24and%22%3A%5B%7B%22customerBindsale%22%3A%7B%22employerID%22%3A%7B%22%24eq%22%3A%22%7B%7B%24user.userEmployerID.employerName%7D%7D%22%7D%7D%7D%5D%7D”,“res”:{“status”:200},“action”:{“actionName”:“list”,“resourceName”:“customers”,“params”:{“pageSize”:“20”,“appends”:[“customerLocation”,“customerBindsale”,“customerProjectIDs”],“filter”:{“$and”:[{“customerBindsale”:{“employerID”:{“$eq”:null}}}]},“resourceName”:“customers”,“actionName”:“list”}},“userId”:1,“status”:200,“cost”:19,“app”:“main”,“reqId”:“29c99191-0c52-4d68-b313-83251171b343”,“timestamp”:“2024-10-30 21:59:44”}
其中"filter":{“$and”:[{“customerBindsale”:{“employerID”:{“$eq”:null}}}]}有异常
按照我设置的数据范围,filter应该是{“$and”:[{“customerBindsale”:{“employerID”:{“$eq”:“{{$user.userEmployerID.employerID}}”}}}]}
为什么条件会变成null?