app/controllers/avo/actions_controller.rb in avo-2.13.6.pre.2 vs app/controllers/avo/actions_controller.rb in avo-2.14.0

- old
+ new

@@ -9,22 +9,28 @@ def show @model = ActionModel.new @action.get_attributes_for_action end def handle - resource_ids = action_params[:fields][:resource_ids].split(",") - models = @resource.class.find_scope.find resource_ids + resource_ids = action_params[:fields][:avo_resource_ids].split(",") + @selected_query = action_params[:fields][:avo_selected_query] - fields = action_params[:fields].except("resource_ids") + fields = action_params[:fields].except(:avo_resource_ids, :avo_selected_query) args = { fields: fields, current_user: _current_user, resource: resource } - args[:models] = models unless @action.standalone + unless @action.standalone + args[:models] = if @selected_query.present? + @resource.model_class.find_by_sql decrypted_query + else + @resource.class.find_scope.find resource_ids + end + end performed_action = @action.handle_action(**args) respond performed_action.response end @@ -87,8 +93,15 @@ response[:messages].select do |message| # Remove the silent placeholder messages message[:type] != :silent end + end + + def decrypted_query + Avo::Services::EncryptionService.decrypt( + message: @selected_query, + purpose: :select_all + ) end end end