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