我是 RoR 的新手,正在使用 CanCan 进行授权。我想知道我是否必须明确说明用户可能拥有的每一项能力。
我可能不够清楚,所以我会发布一些代码来帮助说明我的问题。
if user.is_admin?
can :manage, all
end
if user.is_director?
can :update, Camp
end
在这种情况下,导演只能更新营地吗?还是我必须指出他/她具体不能做什么?
提前致谢。
我是 RoR 的新手,正在使用 CanCan 进行授权。我想知道我是否必须明确说明用户可能拥有的每一项能力。
我可能不够清楚,所以我会发布一些代码来帮助说明我的问题。
if user.is_admin?
can :manage, all
end
if user.is_director?
can :update, Camp
end
在这种情况下,导演只能更新营地吗?还是我必须指出他/她具体不能做什么?
提前致谢。
如果我没记错你实现 CanCan 的那一刻,你必须明确,只要你在匹配的控制器中调用authorize_resource
(或)。load_and_authorize_resource
所以是的(如果您在 中调用其中一种授权方法CampController
)。
(导演角色也不应该与管理员角色重叠;)如果是这样,它只会获得所有权限。不是:all
吗?)
如果您添加check_authorization
到您的ApplicationController
,那么是的,它将默认锁定所有控制器操作,除非被skip_authorization_check
.
请参阅有关此问题的GitHub讨论。