在DB Schema 更改read权限配置为等于或不等于

- 发布:2020-12-24 13:36
- 更新:2020-12-25 11:13
- 阅读:691
产品分类: uniCloud/App
操作步骤:
预期结果:
至少在某种情况下无权读取该表数据
至少在某种情况下无权读取该表数据
实际结果:
各种情况下都能查询到数据
各种情况下都能查询到数据
bug描述:
以下是我新建的一个表“gm_business”,
{
"bsonType": "object",
"required": [],
"permission": {
"read": "get(`database.uni-id-users.${auth.uid}`).bid!=doc.bid",
"create": false,
"update": false,
"delete": false
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"bno": {
"bsonType": "string",
"permission": {
"write": false
}
},
"bname": {
"bsonType": "string"
},
"linkman": {
"bsonType": "string"
},
"tel": {
"bsonType": "string"
},
"address": {
"bsonType": "string"
},
"enabled": {
"bsonType": "bool"
},
"cdate": {}
}
}
我在“uni-id-users”表内新增了一个字段叫“bid”,这个“bid”就是“gm_business”表的“_id”,
permission中的read权限的设置,无论是
"read": "get(database.uni-id-users.${auth.uid}
).bid==doc.bid"
还是
"read": "get(database.uni-id-users.${auth.uid}
).bid!=doc.bid"
都不会生效,非admin用户登录后使用 uni-clientdb (where="" 或者 where="bid='xxxxx'"都试过)还是有权限可以查出数据
DCloud_uniCloud_WYQ
可以理解成是数据库内的数据。你这是gm_business的schema,doc.bid应该换成doc._id
2020-12-25 20:11