ActiveAdmin + CanCan + AASM переключатель событий с AJAX

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

Вдохновленный activeadmin_addons и его интеграцией Enum, я хочу создать аналогичную функциональность для AASM, позволяя разным администраторам изменять события в зависимости от их способностей / ролей для определенных событий / состояний в модели.

1 ответ

Решение

Взято отсюда, пожалуйста, смотрите эту ссылку для дополнительных файлов, которые вам нужны

Prequestites:

Gem: ActiveAdmin, Gem 'active_admin_role', оба установлены и работают модель AdminUser с настройкой current_admin_user (или аналогично вашему приложению).

Протестировано с Rails 5.1.3.

После того, как вы закончите и развернете / запустите сервер, вы должны "перезагрузить" разрешения для администратора и включить "event_update" для менеджера или других ролей, кроме "super_admin".

Меньшие дополнения, которые вам нужно сделать:(в дополнение к ниже вложенным файлам)

В вашей модели 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'

Извините, если я что-то забыл, дайте мне знать, если у вас есть какие-либо вопросы или проблемы!

Другие вопросы по тегам