Activeadmin,page_action和cancan规则

时间:2013-05-22 16:40:07

标签: ruby-on-rails activeadmin cancan

如何管理对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

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

can :manage, :all

但我需要将此操作发送给其他角色。如果我为某个角色执行此操作,则没有帮助。

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

这个

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

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"

答案 2 :(得分:0)

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

posts = [{'Lat': your lat 1} <all your lats>]
collection.insert_many(posts)