我使用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中是否有解决方案或我应该修改或写入我自己的自定义授权系统?