是否有任何 Multi-Tenancy 应用程序的授权 gem/示例?
我查看了 CanCan 和 CanTango,但找不到我要找的东西。
我的应用有账户、用户、关系模型。关系模型有一个确定授权级别的 relationship_type
列。它的值可以是owner
、moderator
、editor
,将来可能更多。用户可以拥有/管理多个帐户,一个帐户可以有多个所有者/管理员。
我找到的所有示例都描述了单个租户应用程序,而我的应用程序的授权必须限定在正在查看的当前帐户范围内。例如,用户可以是一个帐户的访客,也可以是另一个帐户的所有者。
我开始认为我的关系模型设计不佳并且可能有缺点,但我不确定什么是更好的选择。
最佳答案
CanCan 确实可以处理这个问题,因为它允许您定义任意规则。您的能力文件可能如下所示:
def initialize(user)
can :read, BlogPost do |blog_post|
blog_post.account == user.account and user.relationship.in?([:owner, :moderator])
end
end
关于ruby-on-rails - Multi-Tenancy 应用程序的授权 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570671/