1

我正在构建一个 Rails 3 应用程序,并且正在设计一个复杂的用户权限工具,用户可以在其中Company确定每个PM.

想象一下这个场景——公司想要在三种类型的数据上建立特定的角色。

  • 项目表
  • 客户表
  • 公司帐户(即公司表)

我正在考虑添加一个包含这些字段的角色多态表:

  • user_id(此角色适用的用户,除非 all_users == true)
  • 项目类型(例如“项目”、“客户”或“公司”,除非 all_items == true)
  • 商品编号(如上)
  • 角色(例如“读取”、“编辑”、“销毁”,甚至“自定义”)
  • all_users(布尔值:此项的角色是否适用于所有用户)
  • all_items(布尔值:此用户的角色是否适用于所有项目)
  • company_id(“拥有”此角色的公司)

我觉得 CanCan 将是实现此目标的一种不错的精益方式,但这是我的问题。1. 上表是一个很好的方法吗?2. CanCan 能否与此相结合以创建有效的解决方案?

4

1 回答 1

0

您的表格似乎是实现非常复杂的授权方案的明智方法,这似乎是您所追求的。

就 CanCan 而言,是的,它将与此完美结合。CanCan 所做的只是让您能够根据某些标准定义动作、模型等的授权。这些标准可以是任何东西(例如,一个月中的哪一天等),但通常与角色相关联。因此,您所要做的就是根据您的角色表中的信息和将要评估的特定模型实例指定授权权限。

于 2011-01-07T15:10:50.700 回答