1

如何管理对 custom_page 操作的访问?我有这个代码:

ActiveAdmin.register_page 'Import' do
  menu false

  content do
    panel t('views.import.title') do
      render 'form'
    end
  end

  page_action :parse, method: :post do
    @import = current_user.imports.new(params[:import])
    if @import.save
      @import.process
    end
  end

  page_action :check_status do
    imports = current_user.imports.finished.unreaded
    size = imports.size
    imports.update_all readed: true
    render json: {has_new_ended: size}
  end
end

现在,访问此操作只有管理员,因为他的规则看起来像

can :manage, :all

但我需要将此操作访问到其他角色。如果我为某个角色这样做,那将无济于事。

can [:check_status, :parse], ActiveAdmin::Page, name: 'Import'

和这个

can [:manage, :parse, :check_status], Import
4

3 回答 3

1

通过在 中使用以下代码ability.rb,您应该能够在当前用户在自定义页面中时获得他的所有权限。

can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
于 2018-10-15T07:29:24.700 回答
0

您必须授权这些操作。查看更多:https ://github.com/ryanb/cancan#2-check-abilities--authorization

于 2014-05-23T13:05:42.433 回答
0

您需要使用您的操作名称和页面名称。

can :parse, ActiveAdmin::Page, name: 'Import'
can :check_status, ActiveAdmin::Page, name: 'Import'
于 2020-04-04T08:37:06.370 回答