unicloud 配置schema的permission的read为false,表级和字段级都设置了read为false,在前端未登录,为什么还是能正常读取到数据?把整个permission删除,前段仍然可以正常读取。
{
"bsonType": "object",
"required": [
"name"
],
"permission": {
"read": false,
"create": false,
"update": false,
"delete": false
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"name": {
"bsonType": "string",
"description": "类别名称",
"label": "名称",
"trim": "both",
"permission": {
"read": false,
"write": false
}
}
}
}
m***@foxmail.com (作者)
我是这样测试的。一个前端的程序,使用到了News和category数据表。一个后台管理系统admin,也使用到了这二张表。在admin中,权限管理是正常的,如果read是false,后台除了超管以外,其他不能访问。但在前端那个程序里,不用登录,直接在首页,请求这个category,就是分类列表,是能够正常取到数据的。不管是本地调试还是云端调试,结果都是一样的。本地和云端的schema相同。
2023-07-12 15:23
m***@foxmail.com (作者)
在前端程序首页读取分类数据,就是用的uniCloud.database()
2023-07-12 15:24
DCloud_uniCloud_WYQ
回复 m***@foxmail.com: 贴一下你的前端页面里面调用uniCloud.database()查询的代码
2023-07-13 11:08
m***@foxmail.com (作者)
回复 DCloud_uniCloud_WYQ:
'use strict';
const db = uniCloud.database();
exports.main = async (event, context) => {
//event为客户端上传的参数
};
我做了一个云函数category,上面 的代码是其index.js中的内容
2023-07-13 11:14
DCloud_uniCloud_WYQ
回复 m***@foxmail.com: 权限校验只对jql生效,你这是云函数里面非jql的写法。参考:云函数使用jql操作数据库、客户端使用jql操作数据库。其中客户端只支持jql,云函数可以选择用jql也可以不用
2023-07-13 11:18
m***@foxmail.com (作者)
回复 DCloud_uniCloud_WYQ: 哦,好的,谢谢了。
2023-07-13 11:20
m***@foxmail.com (作者)
回复 DCloud_uniCloud_WYQ:
请问一下,是不是使用
const db = uniCloud.databaseForJQL();
这个就算是JQL写法了。而使用uniCloud.database()就是传统的云函数写法?
2023-07-15 10:17
DCloud_uniCloud_WYQ
回复 m***@foxmail.com: 云函数里面是的,客户端无论什么写法都是jql
2023-07-17 11:11