CanCan权限 - 他们必须明确吗?

时间:2013-11-14 21:29:09

标签: ruby-on-rails ruby gem cancan

我是RoR的新手,正在使用CanCan进行授权。我想知道我是否必须明确用户可能拥有的每一项能力。

我可能不够清楚,所以我会发布一些代码来帮助说明我的问题。

if user.is_admin?
   can :manage, all
end

if user.is_director?
   can :update, Camp
end

在这种情况下,导演是否只能更新营地?或者我是否必须表示他/她具体不能做什么?

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果我记得你实施CanCan的那一刻,你必须明确,只要你在匹配的控制器中调用authorize_resource(或load_and_authorize_resource)。

是的(如果你在CampController中调用一个授权方法)。

(导演角色也不应与管理员角色重叠;)如果是,它只是获得所有权限。不是:all吗?)

答案 1 :(得分:0)

如果您向check_authorization添加了ApplicationController,那么肯定会锁定所有控制器操作,除非被skip_authorization_check明确覆盖。

请参阅围绕此问题的GitHub讨论。