我喜欢Rolify(https://github.com/RolifyCommunity/rolify)API,并希望在我的应用中使用它,但是我在查找其中的任何文档或教程时遇到问题,这些文档或教程可以让我定义一个作用域的角色两个参数[:account_id]&&资源实例。有没有人以这种方式使用过Rolify,可以就如何进行设置提供建议吗?
理想情况下,这看起来像
user.add_role :moderator, Notes.where(account_id: params[:account_id])
答案 0 :(得分:0)
您可以按如下方式将角色添加到特定实例:
note = Notes.where(account_id: params[:account_id].first
user.add_role(:moderator, note)
答案 1 :(得分:0)
我们在生产中有一个多租户Rails应用程序,该应用程序使用Acts As Tenant和Rolify来处理您所描述的用例。有User
个帐户,它们独立于任何租户,每个用户可以有多个Membership
,因此是多个租户的成员。
每个用户成员资格可以具有各自的角色。对于排名较低的角色,我们需要仅允许访问更多特权成员可以分配给他们的某些实例。
一个好的多租户gem应当确定仅要针对一个特定组织的所有Rails模型的范围,并防止组织A的任何成员访问组织B的数据。因此,实际上应该不需要使用类似如果要定义作用域为资源实例的角色,请手动params[:account_id]
。