ActiveAdmin + CanCan + AASM 事件切换器 AJAX

ActiveAdmin + CanCan + AASM event switcher with AJAX

As an admin I have a specific role
I want to see and switch event for object
Depends on my role

受到 activeadmin_addons and its Enum Integration 的启发,我想通过让不同的管理员用户根据模型中特定 events/statuses 的 abilities/roles 更改事件来为 AASM 提供类似的功能。

Taken from here, please see this link for additional files you need

先决条件:

Gem:活跃管理员, Gem 'active_admin_role',两者均已安装并使用 current_admin_user 设置(或类似于您的应用程序)的 AdminUser 模型。

使用 Rails 5.1.3 进行测试。

完成 deploy/run 服务器后,您必须 "Reload" 管理员权限并为经理或 "super_admin" 以外的角色启用 "event_update"。

您需要做的更小的插件: (除了以下附件)

在您的 AdminUser 模型中添加:

include CanCan::Ability
include ActiveAdminRole::CanCan::Ability

在您的 table_for 中(您呈现数据列的位置):

column 'Our Status' do |auction|
  render 'admin/auctions/event_change', auction: auction
end

在 initializers/active_admin.rb 或任何你想要的时候

ActiveAdmin::ResourceController.class_eval do
  protected

  def current_ability
    # Match to your current admin user
    @current_ability ||= Ability.new(current_admin_user)
  end
end

还要确保你的配置:

config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.cancan_ability_class = 'Ability'

请原谅我忘记了什么,如果您有任何疑问或问题,请告诉我!