有没有办法区分查询和数据条件
Is there a way to differentiate between query and data conditions
我有一个名为 documentations
的 feathersjs 服务。修补 documentation
时,用户只能将 editing
字段设置为他自己的 user._id
或 null
。另外用户只能给自己公司的补丁documenations
我已将我的权限存储在 MongoDB 数据库中:
...
{
"action": "patch",
"subject": "documentation",
"fields": ["editing", "sections", "title", "published"],
"conditions": {
"company": "${user.belongsTo}"
}
}
...
有没有办法用 CASL 实现 editing
字段逻辑?
有什么方法可以区分查询条件和数据条件吗?
坦率地说,这种逻辑在我看来是BL问题而不是权限问题。但是你也可以用 CASL 做类似的事情,为 editing
字段创建一个单独的规则:
can(“update”, “documentation”, { company: ..., editing: { $in: [null, user.id] } }, [“editing”])
因此,每次更新 editing
只需检查权限
我有一个名为 documentations
的 feathersjs 服务。修补 documentation
时,用户只能将 editing
字段设置为他自己的 user._id
或 null
。另外用户只能给自己公司的补丁documenations
我已将我的权限存储在 MongoDB 数据库中:
...
{
"action": "patch",
"subject": "documentation",
"fields": ["editing", "sections", "title", "published"],
"conditions": {
"company": "${user.belongsTo}"
}
}
...
有没有办法用 CASL 实现 editing
字段逻辑?
有什么方法可以区分查询条件和数据条件吗?
坦率地说,这种逻辑在我看来是BL问题而不是权限问题。但是你也可以用 CASL 做类似的事情,为 editing
字段创建一个单独的规则:
can(“update”, “documentation”, { company: ..., editing: { $in: [null, user.id] } }, [“editing”])
因此,每次更新 editing
只需检查权限