0

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

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

if user.is_admin?
   can :manage, all
end

if user.is_director?
   can :update, Camp
end

在这种情况下,导演只能更新营地吗?还是我必须指出他/她具体不能做什么?

提前致谢。

4

2 回答 2

0

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

所以是的(如果您在 中调用其中一种授权方法CampController)。

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

于 2013-11-14T21:32:22.790 回答
0

如果您添加check_authorization到您的ApplicationController,那么是的,它将默认锁定所有控制器操作,除非被skip_authorization_check.

请参阅有关此问题的GitHub讨论。

于 2013-11-14T21:34:29.520 回答