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