Ruby on rails 4 专家vs角色化两层角色

Ruby on rails 4 专家vs角色化两层角色,ruby-on-rails-4,authorization,Ruby On Rails 4,Authorization,我正在为当前的一个项目深入研究Rails,并且正在讨论使用什么样的AuthGem。我的挑战是有两层角色 组织级角色——想想SaaS风格的层,其中每个组织都可以访问不同的功能集 用户级角色-更传统,我以前使用过pundit、cancancan等 但这里的怪癖是,用户可以属于许多组织。用户正在浏览的当前组织存储在会话中,具体取决于某些URL参数 任何人都可以分享一些授权组织的级别角色和功能角色的代码示例吗 例如 用户A属于Org123,是管理员,他们可以创建/更新/删除帖子,但不能将投票附加到帖子

我正在为当前的一个项目深入研究Rails,并且正在讨论使用什么样的AuthGem。我的挑战是有两层角色

  • 组织级角色——想想SaaS风格的层,其中每个组织都可以访问不同的功能集

  • 用户级角色-更传统,我以前使用过pundit、cancancan等

  • 但这里的怪癖是,用户可以属于许多组织。用户正在浏览的当前组织存储在会话中,具体取决于某些URL参数

    任何人都可以分享一些授权组织的级别角色和功能角色的代码示例吗

    例如

    用户A属于Org123,是管理员,他们可以创建/更新/删除帖子,但不能将投票附加到帖子

    用户B属于Ord 543,是管理员。他们可以创建/更新/删除帖子,也可以创建投票,因为他们的组织有这一功能


    有些人建议在组织中使用rolify,在用户中使用pundit,但我觉得在不使用两个独立系统的情况下,这样做更容易。

    请原谅我的错误,但我认为您误解了pundit和rolify的使用案例

    据我所知,Pundit和CanCanCan等gem旨在处理授权,而不是角色。类似地,Rolify不处理授权,而是为用户建立角色

    如果你认为Rolify不适合你,我建议你创建自己的角色系统。在我看来,有两种主要的实施途径:

  • 用户可以有一个角色
  • 用户可以有多个角色
  • 听上去,您希望为用户实现多个角色。显然有许多不同的方法可以实现这一点,最直接(但可能不安全)的方法是在用户模型上添加一个数组属性,该属性存储用户具有的不同角色类型