mirror of
https://github.com/Fishwaldo/huginn.git
synced 2025-03-15 19:31:26 +00:00
Allow multiple users to import the same scenario
- renames should_import? to import_confirmed? for readability Related issue: #968
This commit is contained in:
parent
c1b6e17bb4
commit
6435f0024c
3 changed files with 28 additions and 11 deletions
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue