cancan - “可以:管理所有”。我无法使用 devise 访问 Rails 3 应用程序中的所有内容

发布于 2024-11-29 08:49:27 字数 573 浏览 1 评论 0原文

我在应用程序控制器中使用“检查授权”,因此每个操作都需要权限。我首先授予我超级管理员 :=] 管理所有内容的权限。我认为管理所有可以让我访问整个应用程序而无需命名资源。

用户模型:

  def role?(role)
    roles.include? role.to_s
  end

应用程序控制器:

check_authorization

cancan 的能力模型:

  def initialize(user)
    if user.role? :superadmin
      can :manage, :all
    end
  end

错误消息:

This action failed the check_authorization because it does not authorize_resource. Add skip_authorization_check to bypass this check.

谢谢。

I am using "check authorization" in the application controller so every action will require a permission. I'm starting with giving me, the superadmin :=], permissions to manage all. I thought manage all would give me access to the whole app without naming a resource.

user model:

  def role?(role)
    roles.include? role.to_s
  end

application controller:

check_authorization

cancan's ability model:

  def initialize(user)
    if user.role? :superadmin
      can :manage, :all
    end
  end

error message:

This action failed the check_authorization because it does not authorize_resource. Add skip_authorization_check to bypass this check.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨后咖啡店 2024-12-06 08:49:27

据我所知,您需要在控制器中调用 authorize_resource 作为 before 过滤器,这样才能正常工作。

As far as I am aware, you're going to need to call authorize_resource in your controller as a before filter so that this works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文