1

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

4

1 回答 1

2

你检查过这个吗?您可以在能力计算中包含您想要从请求中获得的任何内容。

于 2011-03-29T13:19:06.433 回答