Rails 3公司帐户有很多用户,限制访问数据

sno*_*gel 3 authorization ruby-on-rails access-control user-permissions

我想知道在我的应用程序中构建身份验证/授权的最佳方法.我希望有

  • 许多公司帐户,可能使用子域名

  • 帐户有很多用户

  • 并且用户只能访问由他们自己或具有相同帐户的其他用户创建的记录.

我已经完成的研究提供了很多混合设计,用于以奇怪和奇妙的方式组合设计/ cancan/authlogic,但我还没有找到任何能够向我展示限制用户访问数据的最佳方法模型.

例如:


帐户1:欧亚大陆

用户1:鲍勃

用户2:吉姆


帐户2:Eastasia

用户1:戴夫

用户2:艾伦


Isbn 1:account_id是1

Isbn 2:account_id是2


我如何确保Bob无法访问或讨论Isbn 2?

///更新当然,现在我发布了这个,我的google fu已经开始了,我已经从RyanB找到了CanCan 2.0的自述文件,看起来很完美:

>资源

如果您需要根据模型的属性更改授权,该怎么办?您可以通过将条件的哈希作为最后一个参数传递给can来实现.例如,如果您只想允许一个人访问他拥有的项目,您可以设置:user_id选项.

Dog*_*ert 5

我建议使用CanCan进行授权.

你的能力模型看起来像

can :manage, :isbn do |isbn|
  isbn.account == current_user.account
end
Run Code Online (Sandbox Code Playgroud)

然后你可以使用can? :manage, @post你的控制器/视图中的条件.