diff --git a/enterprise/app/controllers/api/v1/accounts/captain/assistants/scenarios_controller.rb b/enterprise/app/controllers/api/v1/accounts/captain/scenarios_controller.rb similarity index 64% rename from enterprise/app/controllers/api/v1/accounts/captain/assistants/scenarios_controller.rb rename to enterprise/app/controllers/api/v1/accounts/captain/scenarios_controller.rb index 5aa72b3be..7c329053b 100644 --- a/enterprise/app/controllers/api/v1/accounts/captain/assistants/scenarios_controller.rb +++ b/enterprise/app/controllers/api/v1/accounts/captain/scenarios_controller.rb @@ -1,4 +1,5 @@ -class Api::V1::Accounts::Captain::Assistants::ScenariosController < Api::V1::Accounts::BaseController +class Api::V1::Accounts::Captain::ScenariosController < Api::V1::Accounts::BaseController + before_action :current_account before_action -> { check_authorization(Captain::Scenario) } before_action :set_assistant before_action :set_scenario, only: [:show, :update, :destroy] @@ -10,7 +11,7 @@ class Api::V1::Accounts::Captain::Assistants::ScenariosController < Api::V1::Acc def show; end def create - @scenario = assistant_scenarios.create!(scenario_params) + @scenario = assistant_scenarios.create!(scenario_params.merge(account: Current.account)) end def update @@ -25,7 +26,11 @@ class Api::V1::Accounts::Captain::Assistants::ScenariosController < Api::V1::Acc private def set_assistant - @assistant = current_account.captain_assistants.find(params[:assistant_id]) + @assistant = account_assistants.find(params[:assistant_id]) + end + + def account_assistants + @account_assistants ||= Current.account.captain_assistants end def set_scenario diff --git a/enterprise/app/policies/captain/scenario_policy.rb b/enterprise/app/policies/captain/scenario_policy.rb new file mode 100644 index 000000000..82c5d236b --- /dev/null +++ b/enterprise/app/policies/captain/scenario_policy.rb @@ -0,0 +1,21 @@ +class Captain::ScenarioPolicy < ApplicationPolicy + def index? + true + end + + def show? + true + end + + def create? + @account_user.administrator? + end + + def update? + @account_user.administrator? + end + + def destroy? + @account_user.administrator? + end +end \ No newline at end of file diff --git a/enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/create.json.jbuilder b/enterprise/app/views/api/v1/accounts/captain/scenarios/create.json.jbuilder similarity index 100% rename from enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/create.json.jbuilder rename to enterprise/app/views/api/v1/accounts/captain/scenarios/create.json.jbuilder diff --git a/enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/index.json.jbuilder b/enterprise/app/views/api/v1/accounts/captain/scenarios/index.json.jbuilder similarity index 100% rename from enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/index.json.jbuilder rename to enterprise/app/views/api/v1/accounts/captain/scenarios/index.json.jbuilder diff --git a/enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/show.json.jbuilder b/enterprise/app/views/api/v1/accounts/captain/scenarios/show.json.jbuilder similarity index 100% rename from enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/show.json.jbuilder rename to enterprise/app/views/api/v1/accounts/captain/scenarios/show.json.jbuilder diff --git a/enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/update.json.jbuilder b/enterprise/app/views/api/v1/accounts/captain/scenarios/update.json.jbuilder similarity index 100% rename from enterprise/app/views/api/v1/accounts/captain/assistants/scenarios/update.json.jbuilder rename to enterprise/app/views/api/v1/accounts/captain/scenarios/update.json.jbuilder diff --git a/enterprise/app/views/api/v1/models/captain/_scenario.json.jbuilder b/enterprise/app/views/api/v1/models/captain/_scenario.json.jbuilder index a0a832efc..ae78c7bb8 100644 --- a/enterprise/app/views/api/v1/models/captain/_scenario.json.jbuilder +++ b/enterprise/app/views/api/v1/models/captain/_scenario.json.jbuilder @@ -13,4 +13,4 @@ if scenario.assistant.present? json.id scenario.assistant.id json.name scenario.assistant.name end -end +end \ No newline at end of file diff --git a/spec/enterprise/controllers/api/v1/accounts/captain/assistants/scenarios_controller_spec.rb b/spec/enterprise/controllers/api/v1/accounts/captain/scenarios_controller_spec.rb similarity index 99% rename from spec/enterprise/controllers/api/v1/accounts/captain/assistants/scenarios_controller_spec.rb rename to spec/enterprise/controllers/api/v1/accounts/captain/scenarios_controller_spec.rb index 37fdd940a..c66571921 100644 --- a/spec/enterprise/controllers/api/v1/accounts/captain/assistants/scenarios_controller_spec.rb +++ b/spec/enterprise/controllers/api/v1/accounts/captain/scenarios_controller_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -RSpec.describe 'Api::V1::Accounts::Captain::Assistants::Scenarios', type: :request do +RSpec.describe 'Api::V1::Accounts::Captain::Scenarios', type: :request do let(:account) { create(:account) } let(:admin) { create(:user, account: account, role: :administrator) } let(:agent) { create(:user, account: account, role: :agent) }