ActiveAdmin.register ::ActiveAdmin::Permission, as: “Permission” do
actions :index filter :state, as: :select, collection: controller.resource_class.states filter :managed_resource_action_equals, as: :select, label: ::ActiveAdmin::ManagedResource.human_attribute_name(:action),
<%- if Rails::VERSION::MAJOR >= 5 -%>
collection: -> { ::ActiveAdmin::ManagedResource.distinct.order(:action).pluck(:action) }
<%- else -%>
collection: -> { ::ActiveAdmin::ManagedResource.uniq.order(:action).pluck(:action) }
<%- end -%>
filter :managed_resource_name_equals, as: :select, label: ::ActiveAdmin::ManagedResource.human_attribute_name(:name),
<%- if Rails::VERSION::MAJOR >= 5 -%>
collection: -> { ::ActiveAdmin::ManagedResource.distinct.pluck(:name).sort }
<%- else -%>
collection: -> { ::ActiveAdmin::ManagedResource.uniq.pluck(:name).sort }
<%- end -%>
filter :managed_resource_class_name_equals, as: :select, label: ::ActiveAdmin::ManagedResource.human_attribute_name(:class_name),
<%- if Rails::VERSION::MAJOR >= 5 -%>
collection: -> { ::ActiveAdmin::ManagedResource.distinct.order(:class_name).pluck(:class_name) }
<%- else -%>
collection: -> { ::ActiveAdmin::ManagedResource.uniq.order(:class_name).pluck(:class_name) }
<%- end -%>
scope :all, default: true controller.resource_class.manageable_roles.each_key(&method(:scope)) controller.resource_class.states.each_key do |state| batch_action state do |ids| resource_class.clear_cache resource_class.where(id: ids).update_all(state: resource_class.states[state])
<%- if Rails::VERSION::MAJOR >= 5 -%>
redirect_back fallback_location: admin_root_url, notice: t("views.permission.notice.state_changed", state: state)
<%- else -%>
redirect_to :back, notice: t("views.permission.notice.state_changed", state: state)
<%- end -%>
end end collection_action :reload, method: :post do ::ActiveAdmin::ManagedResource.reload
<%- if Rails::VERSION::MAJOR >= 5 -%>
redirect_back(fallback_location: admin_root_url, notice: t("views.permission.notice.reloaded"))
<%- else -%>
redirect_to :back, notice: t("views.permission.notice.reloaded")
<%- end -%>
end action_item :reload do link_to t("views.permission.action_item.reload"), reload_admin_permissions_path, method: :post end includes :managed_resource index do selectable_column column :role column(:state) do |record| status_tag(record.state, class: record.can? ? "completed ok" : "null", label: record.state) end column :action column :name column :class_name end
end