我想知道在我的应用程序中构建身份验证/授权的最佳方法.我希望有 许多公司帐户,可能使用子域名 帐户有很多用户 并且用户只能访问由他们自己或具有相同帐户的其他用户创建的记录
>许多公司帐户,可能使用子域名
>帐户有很多用户
>并且用户只能访问由他们自己或具有相同帐户的其他用户创建的记录.
我已经完成的研究提供了很多混合设计,用于以奇怪和奇妙的方式组合设计/ 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的自述文件,看起来很完美:
>资源
我建议使用 CanCan进行授权.What if you need to change authorization based on a model’s
attributes? You can do so by passing a hash of conditions as the last
argument to can. For example, if you want to only allow one to access
projects which he owns you can set the :user_id option.
你的能力模型看起来像
can :manage, :isbn do |isbn| isbn.account == current_user.account end
那你可以使用像can这样的条件吗? :在您的控制器/视图中管理,@ post.