From 6435f0024ce2223ca89a8ace0040ed5a471cdd26 Mon Sep 17 00:00:00 2001 From: Will Read Date: Mon, 7 Dec 2015 01:37:56 +0000 Subject: [PATCH] Allow multiple users to import the same scenario - renames should_import? to import_confirmed? for readability Related issue: #968 --- .../scenario_imports_controller.rb | 6 +---- app/models/scenario_import.rb | 6 +---- spec/models/scenario_import_spec.rb | 27 ++++++++++++++++++- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/app/controllers/scenario_imports_controller.rb b/app/controllers/scenario_imports_controller.rb index 531aa19d..748b855c 100644 --- a/app/controllers/scenario_imports_controller.rb +++ b/app/controllers/scenario_imports_controller.rb @@ -7,11 +7,7 @@ class ScenarioImportsController < ApplicationController @scenario_import = ScenarioImport.new(params[:scenario_import]) @scenario_import.set_user(current_user) - if @scenario_import.will_request_local?(scenarios_url) - render :text => 'Sorry, you cannot import a Scenario by URL from your own Huginn server.' and return - end - - if @scenario_import.valid? && @scenario_import.should_import? && @scenario_import.import + if @scenario_import.valid? && @scenario_import.import_confirmed? && @scenario_import.import redirect_to @scenario_import.scenario, notice: "Import successful!" else render action: "new" diff --git a/app/models/scenario_import.rb b/app/models/scenario_import.rb index f6f943eb..4a93c033 100644 --- a/app/models/scenario_import.rb +++ b/app/models/scenario_import.rb @@ -50,7 +50,7 @@ class ScenarioImport @agent_diffs || generate_diff end - def should_import? + def import_confirmed? do_import == "1" end @@ -111,10 +111,6 @@ class ScenarioImport @scenario || @existing_scenario end - def will_request_local?(url_root) - data.blank? && file.blank? && url.present? && url.starts_with?(url_root) - end - protected def parse_file diff --git a/spec/models/scenario_import_spec.rb b/spec/models/scenario_import_spec.rb index e786d6f5..a8cd3bd1 100644 --- a/spec/models/scenario_import_spec.rb +++ b/spec/models/scenario_import_spec.rb @@ -317,7 +317,7 @@ describe ScenarioImport do end end - context "when an a scenario already exists with the given guid" do + context "when an a scenario already exists with the given guid for the importing user" do let!(:existing_scenario) do _existing_scenerio = users(:bob).scenarios.build(:name => "an existing scenario", :description => "something") _existing_scenerio.guid = guid @@ -507,6 +507,31 @@ describe ScenarioImport do end end end + + context "when an a scenario already exists with the given guid for the a different user" do + let!(:existing_scenario) do + _existing_scenerio = users(:jane).scenarios.build(:name => "an existing scenario", :description => "something") + _existing_scenerio.guid = guid + _existing_scenerio.save! + _existing_scenerio + end + + describe "#import" do + it "makes a new scenario" do + expect { + scenario_import.import(:skip_agents => true) + }.to change { users(:bob).scenarios.count }.by(1) + + expect(scenario_import.scenario.name).to eq(name) + expect(scenario_import.scenario.description).to eq(description) + expect(scenario_import.scenario.guid).to eq(guid) + expect(scenario_import.scenario.tag_fg_color).to eq(tag_fg_color) + expect(scenario_import.scenario.tag_bg_color).to eq(tag_bg_color) + expect(scenario_import.scenario.source_url).to eq(source_url) + expect(scenario_import.scenario.public).to be_falsey + end + end + end context "agents which require a service" do let(:valid_parsed_services) do