diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d388f71da2..721e8a98f8 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -68,12 +68,13 @@ def basecamp_auth_check def agent_params return {} unless params[:agent] @agent_params ||= begin - options = params[:agent].delete(:options) if params[:agent][:options].present? - params[:agent].permit(:memory, :name, :type, :schedule, :disabled, :keep_events_for, :propagate_immediately, :drop_pending_events, :service_id, - source_ids: [], receiver_ids: [], scenario_ids: [], controller_ids: [], control_target_ids: []).tap do |agent_params| - agent_params[:options] = options if options - agent_params[:options].permit! if agent_params[:options].respond_to?(:permit!) + options = if params[:agent].fetch(:options, '').kind_of?(ActionController::Parameters) + [options: {}] + else + [:options] end + params[:agent].permit([:memory, :name, :type, :schedule, :disabled, :keep_events_for, :propagate_immediately, :drop_pending_events, :service_id, + source_ids: [], receiver_ids: [], scenario_ids: [], controller_ids: [], control_target_ids: []] + options) end end end diff --git a/app/controllers/scenario_imports_controller.rb b/app/controllers/scenario_imports_controller.rb index f883ddcd81..e42cee61bb 100644 --- a/app/controllers/scenario_imports_controller.rb +++ b/app/controllers/scenario_imports_controller.rb @@ -17,9 +17,6 @@ def create private def scenario_import_params - merges = params[:scenario_import].delete(:merges).try(:permit!) - params.require(:scenario_import).permit(:url, :data, :file, :do_import).tap do |params| - params[:merges] = merges - end + params.require(:scenario_import).permit(:url, :data, :file, :do_import, merges: {}) end end