此用户权限设置是否有意义?

时间:2011-01-07 14:16:31

标签: ruby-on-rails permissions ruby-on-rails-3 roles cancan

我正在构建一个Rails 3应用程序,我正在设计一个复杂的用户权限工具,Company用户确定每个PM的特定角色。

想象一下这种情况 - 公司希望在三种类型的数据上建立特定的角色。

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

我正在考虑使用以下字段添加Role多态表:

  • user_id(此角色适用的用户,除非all_users == true)
  • 项目类型(例如“Project”,“Client”或“Company”,除非all_items == true)
  • 项目ID(如上所述)
  • 角色(例如“阅读”,“编辑”,“破坏”,甚至“自定义”)
  • all_users(布尔值:此项目的角色是否适用于所有用户)
  • all_items(布尔值:此用户的角色是否适用于所有项目)
  • company_id('拥有'此角色的公司)

我觉得CanCan将是一个很好的精益方式来完成这个,但这是我的问题。 1.上表是一个很好的方法吗? 2. CanCan可以配合这个来创建一个有效的解决方案吗?

1 个答案:

答案 0 :(得分:0)

你的表似乎是一种实现非常复杂的授权方案的合理方式,这似乎是你所追求的。

就CanCan而言,是的,它将与此完美结合。所有CanCan都能为您提供根据特定标准定义操作,模型等授权的功能。这些标准可以是任何东西(例如,每月的某天等),但通常与角色有关。因此,您所要做的就是根据Role表中的信息和将要评估的特定模型实例指定授权权限。