【问题标题】:CanCan Permissions - Do they have to be explicit?CanCan 权限 - 它们必须是明确的吗?
【发布时间】:2013-11-14 21:29:08
【问题描述】:

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

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

if user.is_admin?
   can :manage, all
end

if user.is_director?
   can :update, Camp
end

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

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby gem cancan


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 是的:全部。我仍然习惯于语法;)感谢您的帮助,我通过控制控制器和视图层中的访问来整理所有内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      • 2015-03-06
      • 2015-02-12
      • 1970-01-01
      相关资源
      最近更新 更多