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'
Извините, если я что-то забыл, дайте мне знать, если у вас есть какие-либо вопросы или проблемы!