我正在使用 Rails 4、Postgres 和 Devise 构建一个多租户应用程序。充当租户用于分区,并设计用于身份验证。我没有选择授权方案,而是倾向于 Pundit。
我有一个允许外部用户的功能请求,这些用户可能是另一个租户的成员。想象公司 A 正在创建一个文档。他们希望与 B 公司的用户进行协作。B 公司的特定用户应该只能访问他们正在协作的 A 公司中的单个特定文档,以及 B 公司的所有东西……。
Github 在此类功能方面做得非常出色,允许将 aribitray 用户添加到具有出色权限的项目中。
所以有几个具体的问题。这是否需要放弃多租户方案,并采用有点复杂的授权方案。我说放弃是因为 act_as_tenant 提供了一些不可变的数据分区……</p>
如果是这样,Pundit 会是推荐的方法(可能是 CAnCanCan),还是我应该看看其他地方?