我有一个现有的Rails应用程序,它在用户模型上运行设计/专家。
我一直在跟踪:
How to get Active Admin to work with Pundit after login
https://gist.github.com/tomchentw/8579571
我现在不需要授权-设计认证就行了。我可以直接为主动管理的"turn off"专家吗?
更新
这是超级猴子贴片:
after_action :verify_policy_scoped, only: [:index] if controller_path.split('/').first == "admin"它有效,但我不认为它是理想的。
发布于 2016-01-07 07:45:24
config.authentication_method = false
config.current_user_method = false在您的配置/初始化器/active_admin.rb中
发布于 2016-01-07 07:59:58
您可以尝试设置授权适配器。
建立自己的AuthorizationAdapter很容易!下面的示例演示如何设置授权适配器类并将其绑定到Active Admin:
# app/models/only_authors_authorization.rb
class NotAdminAuthorization < ActiveAdmin::AuthorizationAdapter
def authorized?(action, subject = nil)
false
end
end然后
config.authorization_adapter = "NotAdminAuthorization"而其他您可以定义名称空间切换。
ActiveAdmin.setup do |config|
config.namespace :admin do |ns|
ns.authorization_adapter = "NotAdminAuthorization"
end
config.namespace :my_user do |ns|
ns.authorization_adapter = ActiveAdmin::PunditAdapter
end
end然后像这样
ActiveAdmin.register Post, namespace: :my_user发布于 2022-10-06 15:11:05
万一有人有这个问题。这是另一种解决办法:
应用程序/控制器/应用程序_控制器。
after_action :verify_authorized, except: %i[index], unless: :active_admin_controller?
after_action :verify_authorized, only: %i[index], unless: :active_admin_controller?
protected
def active_admin_controller?
is_a?(ActiveAdmin::BaseController)
end这将禁用专家对所有活动管理控制器的授权检查。
https://stackoverflow.com/questions/34649465
复制相似问题