2015-12-17 82 views
0

我正在回头讨论当前项目的Rails,并且正在讨论使用何种auth gem。我的挑战是,虽然有两层角色。Pundit vs Rolify两层角色

  1. 组织级角色 - 认为SaaS的风格层,其中每个组织可以访问不同的功能集

  2. 用户级别的角色 - 更多传统和我所使用的权威人士,cancancan等,为前。

这里的怪癖虽然是一个用户可以属于很多组织。用户正在浏览的当前组织依赖于某些URL参数存储在会话中。

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

E.g.

用户A属于ORG 123和是他们可以创建/更新/删除帖子但不能附加轮询至后

用户B属于ORD 543和是管理员的管理员。他们可以创建/更新/删除帖子,并可以创建投票,因为他们的组织具有该功能。

有人建议使用rolify作为用户的组织和权威人士,但我觉得有一种更简单的方法可以在不使用两个单独的系统的情况下完成此任务。

回答

1

如果我错了,请原谅我,但我认为您误解了Pundit和Rolify的使用案例。

据我所知,像Pundit和CanCanCan这样的宝石是为了处理授权,而不是角色。同样,Rolify不处理授权,但为用户处理建立角色。

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

  1. 用户可以有一个角色
  2. 用户可以拥有多个角色

通过它的声音,你想实现多用户角色。显然有许多不同的方法来实现这一点,最直接的(但也许是不安全的)方法是在你的用户模型中添加一个数组属性,该模型存储用户拥有的不同角色类型。

相关问题