0

我有一个名为documentations. 修补用户时documentation,用户只能将editing字段设置为他自己的user._idnull. 此外,用户只能修补documenations他自己公司的补丁。

我已将我的权限存储在 MongoDB 数据库中:

...
{
  "action": "patch",
  "subject": "documentation",
  "fields": ["editing", "sections", "title", "published"],
  "conditions": {
    "company": "${user.belongsTo}"
  }
}
...

有没有办法editing用 CASL 实现字段逻辑?

有什么方法可以区分查询和数据条件吗?

4

1 回答 1

1

坦率地说,这种逻辑在我看来是 BL 关注而不是权限关注。但是你也可以用 CASL 做类似的事情,为editing字段创建一个单独的规则:

can(“update”, “documentation”, { company: ..., editing: { $in: [null, user.id] } }, [“editing”])

因此,每次更新时editing只需检查权限

于 2020-05-12T09:47:37.043 回答