diff --git a/app/controllers/projects/variables_controller.rb b/app/controllers/projects/variables_controller.rb index f916c545fab..8bee1b97d14 100644 --- a/app/controllers/projects/variables_controller.rb +++ b/app/controllers/projects/variables_controller.rb @@ -1,37 +1,6 @@ class Projects::VariablesController < Projects::ApplicationController - before_action :variable, only: [:show, :update, :destroy] before_action :authorize_admin_build! - layout 'project_settings' - - def index - redirect_to project_settings_ci_cd_path(@project) - end - - def show - end - - def update - if variable.update(variable_params) - redirect_to project_variables_path(project), - notice: 'Variable was successfully updated.' - else - render "show" - end - end - - def create - @variable = project.variables.create(variable_params) - .present(current_user: current_user) - - if @variable.persisted? - redirect_to project_settings_ci_cd_path(project), - notice: 'Variable was successfully created.' - else - render "show" - end - end - def save_multiple respond_to do |format| format.json do @@ -42,24 +11,8 @@ class Projects::VariablesController < Projects::ApplicationController end end - def destroy - if variable.destroy - redirect_to project_settings_ci_cd_path(project), - status: 302, - notice: 'Variable was successfully removed.' - else - redirect_to project_settings_ci_cd_path(project), - status: 302, - notice: 'Failed to remove the variable.' - end - end - private - def variable_params - params.require(:variable).permit(*variable_params_attributes) - end - def variables_params params.permit(variables_attributes: [*variable_params_attributes]) end @@ -67,8 +20,4 @@ class Projects::VariablesController < Projects::ApplicationController def variable_params_attributes %i[id key value protected _destroy] end - - def variable - @variable ||= project.variables.find(params[:id]).present(current_user: current_user) - end end diff --git a/config/routes/project.rb b/config/routes/project.rb index 8b65240ade4..b8d09f01ae1 100644 --- a/config/routes/project.rb +++ b/config/routes/project.rb @@ -156,10 +156,8 @@ constraints(ProjectUrlConstrainer.new) do end end - resources :variables, only: [:index, :show, :update, :create, :destroy] do - collection do - post :save_multiple - end + namespace :variables do + post :save_multiple end resources :triggers, only: [:index, :create, :edit, :update, :destroy] do diff --git a/spec/controllers/projects/variables_controller_spec.rb b/spec/controllers/projects/variables_controller_spec.rb index 946110c0e64..4cbc2fb443a 100644 --- a/spec/controllers/projects/variables_controller_spec.rb +++ b/spec/controllers/projects/variables_controller_spec.rb @@ -9,53 +9,6 @@ describe Projects::VariablesController do project.add_master(user) end - describe 'POST #create' do - context 'variable is valid' do - it 'shows a success flash message' do - post :create, namespace_id: project.namespace.to_param, project_id: project, - variable: { key: "one", value: "two" } - - expect(flash[:notice]).to include 'Variable was successfully created.' - expect(response).to redirect_to(project_settings_ci_cd_path(project)) - end - end - - context 'variable is invalid' do - it 'renders show' do - post :create, namespace_id: project.namespace.to_param, project_id: project, - variable: { key: "..one", value: "two" } - - expect(response).to render_template("projects/variables/show") - end - end - end - - describe 'POST #update' do - let(:variable) { create(:ci_variable) } - - context 'updating a variable with valid characters' do - before do - project.variables << variable - end - - it 'shows a success flash message' do - post :update, namespace_id: project.namespace.to_param, project_id: project, - id: variable.id, variable: { key: variable.key, value: 'two' } - - expect(flash[:notice]).to include 'Variable was successfully updated.' - expect(response).to redirect_to(project_variables_path(project)) - end - - it 'renders the action #show if the variable key is invalid' do - post :update, namespace_id: project.namespace.to_param, project_id: project, - id: variable.id, variable: { key: '?', value: variable.value } - - expect(response).to have_gitlab_http_status(200) - expect(response).to render_template :show - end - end - end - describe 'POST #save_multiple' do let(:variable) { create(:ci_variable) }