在 rails 4 中使用 pundit 跳过对特定控制器的授权
skip authorization for specific controllers using pundit in rails 4
我正在使用 rails 4,devise 进行身份验证,Pundit 进行授权。我已限制我的应用程序通过以下代码检查每个控制器的授权。
class ApplicationController < ActionController::Base
include Pundit
after_action :verify_authorized
#.....
end
但是,我想在我的应用程序中跳过对两个特定控制器的授权(它们对 public 开放,用户不需要登录)。如何在不删除 ApplicationController 中的 verify_authorized 的情况下实现它?
skip_after_action :verify_authorized
我正在与 Rails5 合作,我想跳过授权 只需一个动作,而不是整个控制器。因此,根据 documentation,您可以在控制器操作中使用 skip_authorization
功能,如下所示:
class Admin::DashboardController < Admin::BaseController
def index
@organizers = Organizer.count
@sponsors = Sponsor.count
@brochures = Brochure.count
skip_authorization
end
def sponsors_approve
# some statements...
end
def organizers_approve
# some statements...
end
end
在此控制器中,唯一要跳过的操作是 index
,其他操作必须经过授权。
我希望它对其他人有用。
我正在使用 rails 4,devise 进行身份验证,Pundit 进行授权。我已限制我的应用程序通过以下代码检查每个控制器的授权。
class ApplicationController < ActionController::Base
include Pundit
after_action :verify_authorized
#.....
end
但是,我想在我的应用程序中跳过对两个特定控制器的授权(它们对 public 开放,用户不需要登录)。如何在不删除 ApplicationController 中的 verify_authorized 的情况下实现它?
skip_after_action :verify_authorized
我正在与 Rails5 合作,我想跳过授权 只需一个动作,而不是整个控制器。因此,根据 documentation,您可以在控制器操作中使用 skip_authorization
功能,如下所示:
class Admin::DashboardController < Admin::BaseController
def index
@organizers = Organizer.count
@sponsors = Sponsor.count
@brochures = Brochure.count
skip_authorization
end
def sponsors_approve
# some statements...
end
def organizers_approve
# some statements...
end
end
在此控制器中,唯一要跳过的操作是 index
,其他操作必须经过授权。
我希望它对其他人有用。