a表 "permission": {
"read": "auth.uid != null && doc.user_id == auth.uid",
},
db.collection('a,uni-id-users').doc(id).field('user_id').get()
100% 触发
- 发布:2021-11-12 15:34
- 更新:2021-11-14 15:18
- 阅读:548
产品分类: uniCloud/App
操作步骤:
预期结果:
因为 a表 做 read 限制 ,理应智能读取本 user_id下的数据
因为 a表 做 read 限制 ,理应智能读取本 user_id下的数据
实际结果:
实际情况 是
如果 只查询 a表 那么read限制 则正常
如果进行 链表查询 a,uni-id-users
那么read失效
实际情况 是
如果 只查询 a表 那么read限制 则正常
如果进行 链表查询 a,uni-id-users
那么read失效
bug描述:
多表查询 read的限制 会失效
比如
a表 user_id字段 关联了 uni-id-users表
代码 db.collection('a').doc(id).field('user_id').get() //那么read权限就会生效 提示 权限校验未通过
如果 db.collection('a,uni-id-users').doc(id).field('user_id').get()
进行连表查询 那么read的限制就会失效 用户可以查询任何 a 表数据
{
"bsonType": "object",
"required": ["user_id"],
"permission": {
"read": "auth.uid != null && doc.user_id == auth.uid",
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"user_id": {
"bsonType": "string",
"description": "操作者ID, 参考uni-id-users 表",
"foreignKey": "uni-id-users._id",
"forceDefaultValue": {
"$env": "uid"
},
}}
2 个回复
s***@foxmail.com (作者)
经过此时 的确是bug
因为使用 .doc('616bf42a817bc50001ab476d') 的原因
如果没有这一句 而是使用 wher("_id=='616bf42a817bc50001ab476d'")
则read权限生效 如果使用doc() 则read权限失效 所以这bug 挺严重的啊
DCloud_uniCloud_WYQ
感谢反馈已加分,此问题线上版本已修复,重新上传schema可以触发云端逻辑更新。本地调试插件会在下个版本HBuilderX发布时修复