gpt4 book ai didi

ruby-on-rails - 具有数据库角色和能力的 Cancan : AuthorizationNotPerformed

转载 作者:行者123 更新时间:2023-12-04 05:39:35 27 4
gpt4 key购买 nike

我正在构建一个 site-wide cancan 身份验证系统。只是为了对我的尝试进行非常简单的验证,每次尝试点击页面时,我都会初始化我的测试用例:

# application_controller.rb
class ApplicationController < ActionController::Base
admin = Role.new(name: :admin, is_default: true)
admin.permissions << Permission.create(action: :manage, subject_class: :all)
admin.save
current_user=User.create!
# users automatically get associations to all roles with `is_default: true`

check_authorization
end

仅具有 skip_authorization_check 的 Controller 让我通过,其他人都扔 AuthorizationNotPerformed 错误:
CanCan::AuthorizationNotPerformed in ExampleAuthEngin::PermissionsController#index

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

我究竟做错了什么?

最佳答案

在 Controller 中,您需要调用 load_and_authorize_resource (在类(class)级别),或在个人行动中调用 authorize! :action, resource在哪里 :actionresource是要测试的东西。 load_and_authorize_resource 将 before_filters 添加到为资源实例化一个实例变量的 Controller 中(其中实例化的方法是基于 Action 的,而要加载的资源是基于 Controller 名称的)并且还添加了一个过滤器来对加载的资源进行授权,授权根据被击中的操作,在 :read、:create、:update 或 :destroy 上。

您可以阅读更多信息 here .

关于ruby-on-rails - 具有数据库角色和能力的 Cancan : AuthorizationNotPerformed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11422726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com