Rails 3中的授权依赖于变量(不仅仅是用户和当前资源)

时间:2011-03-27 22:16:27

标签: ruby-on-rails-3 authorization cancan

我使用cancan并且我知道声明性授权,但是,看起来,它们没有机会让角色依赖于自定义变量。

型号:

  • 域名(blah.qwe.com,wer.qwe.com,ert.qwe.com) - 我需要在一个数据库和应用程序中使用它们。

  • 用户(可以有多个角色)

  • 角色(每个角色仅在其域中有效;能力可编辑)

  • ...

例如,我有一个用户,他是blah.qwe.com域名的所有者,但他是wer.qwe.ru的简单用户,而在ert.qwe.com,他被禁止并且根本无能为力。

@current_domain在应用程序控制器中的before_filter(通过current_domain方法)中加载,而current_user由devise加载。 根据当前请求的资源(如cancan),current_user和current_domain(以及可能还有其他before_filter加载的变量)进行授权的解决方案是什么? cancan中是否有解决方案或我应该修改或写入我自己的自定义授权系统?

1 个答案:

答案 0 :(得分:2)

您检查过this了吗?您可以在能力计算中包含您想要的任何内容。