w***@lyjs.ltd
w***@lyjs.ltd
  • 发布:2021-09-18 11:56
  • 更新:2021-09-18 19:17
  • 阅读:243

【报Bug】db schema中permission表达式的或运算符(||)异常

分类:uniCloud

产品分类: uniCloud/App

示例代码:

organization.schema.json

{  
    "bsonType": "object",  
    "required": [],  
    "permission": {  
        "read": "doc.role_owner==auth.uid||doc.role_member==auth.uid"  
    },  
    "properties": {  
        "_id": {  
            "description": "存储文档 ID(用户 ID),系统自动生成"  
        },  
        "name": {  
            "bsonType": "string",  
            "trim": "both",  
            "description": "组织名字"  
        },  
        "role_owner": {  
            "bsonType":"string"  
        },  
        "role_member": {  
            "bsonType":"string"  
        }  
    }  
}  

测试数据

{"_id":{"$oid":"6145538156e6160001a73475"},"name":"org2"}  
{"_id":{"$oid":"6145536e8b76c1000179286f"},"name":"org1"}

操作步骤:
  1. 按上面schema创建organization数据库
  2. 导入测试数据

预期结果:

写成"read": "doc.role_owner==auth.uid||doc.role_member==auth.uid",应能拦截无权限用户

实际结果:

写成"read": "doc.role_owner==auth.uid||doc.role_member==auth.uid",无效,无法拦截无权限用户

bug描述:

写成"read": "doc.role_owner==auth.uid",有效,能拦截无权限用户
写成"read": "doc.role_member==auth.uid",有效,能拦截无权限用户
写成"read": "doc.role_owner==auth.uid||doc.role_member==auth.uid",无效,无法拦截无权限用户

2021-09-18 11:56 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

你用的HBuilderX版本多少?连接云端云函数有这个问题吗?试试alpha版本的HBuilderX

  • w***@lyjs.ltd (作者)

    HBuilderX版本3.2.9.20210927

    连接云端云函数也有这个问题

    2021-09-29 13:46

  • DCloud_uniCloud_WYQ

    回复 w***@lyjs.ltd: 这个处理的确实不太好,你数据里面就是不带role_owner和role_member是吗?

    2021-09-29 15:05

  • w***@lyjs.ltd (作者)

    数据改成这样,也是有问题的,无法正常拦截


    [  
    {
    "_id": "6145538156e6160001a73475",
    "name": "org2",
    "role": {
    "member": [
    ],
    "owner": [
    "6142be713040bf0001b3898c",
    "612da81e3a9af400017a77ca"
    ]
    }
    },
    {
    "_id": "6145536e8b76c1000179286f",
    "name": "org1",
    "role": {
    "member": [
    ],
    "owner": [
    ]
    }
    }
    ]

    2021-09-29 16:46

  • DCloud_uniCloud_WYQ

    回复 w***@lyjs.ltd: 正在调整,上线后会在这个帖子回复你

    2021-09-29 21:04

  • w***@lyjs.ltd (作者)

    回复 DCloud_uniCloud_WYQ: 好的,谢谢

    2021-09-30 10:44

  • DCloud_uniCloud_WYQ

    回复 w***@lyjs.ltd: 此问题已在线上修复,本地调试插件会在下个HBuilderX的alpha版本更新。你可以通过上传一个schema文件触发云端逻辑更新

    2021-09-30 14:21

该问题目前已经被锁定, 无法添加新回复