使用 CASL

问题描述

我阅读了来自 link文章,并了解到有 3 种定义能力的方法。但我不知道将它们组合在一起。例如,

Example Tree Structure

在上面的三个结构中,我想限制一些用户可以读/写/创建组,所以我选择使用JSON对象来定义能力如下:

"permissions": [
      {
        "action": "Read","subject": "Group"
      },{
        "action": "Create","subject": "Group"
      }
    ]

每个用户都有不同的权限并存储在数据库中,这样我就可以通过const ability = new Ability(user.permission.rules);数据库中读出,然后在ability.can(Action.Read,'Group')中使用。

但是,我不知道如何在“使用 JSON 对象”时添加更多业务规则。例如,F 组的用户只能读取 F、I 和 J 组,因为 I 和 J 属于 F 组。我该如何实现?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)