Skip to content
Snippets Groups Projects
Unverified Commit b78ac977 authored by Peter Leitzen's avatar Peter Leitzen
Browse files

Move settings operations controller from EE to CE

This commit prepares the structure for the upcoming feature error
tracking.
parent 1aa2ac13
No related branches found
No related tags found
No related merge requests found
# frozen_string_literal: true
module Projects
module Settings
class OperationsController < Projects::ApplicationController
before_action :check_license
before_action :authorize_update_environment!
def show
end
def update
result = ::Projects::Operations::UpdateService.new(project, current_user, update_params).execute
if result[:status] == :success
flash[:notice] = _('Your changes have been saved')
redirect_to project_settings_operations_path(@project)
else
render 'show'
end
end
private
def update_params
params.require(:project).permit(permitted_project_params)
end
# overridden in EE
def permitted_project_params
{}
end
def check_license
render_404 unless helpers.settings_operations_available?
end
end
end
end
Loading
Loading
@@ -283,6 +283,11 @@ module ProjectsHelper
!disabled && !compact_mode && Feature.enabled?(:project_list_show_issue_count, default_enabled: true)
end
 
# overridden in EE
def settings_operations_available?
false
end
private
 
def get_project_nav_tabs(project, current_user)
Loading
Loading
# frozen_string_literal: true
module Projects
module Operations
class UpdateService < BaseService
def execute
Projects::UpdateService
.new(project, current_user, project_update_params)
.execute
end
private
def project_update_params
{}
end
end
end
end
Loading
Loading
@@ -339,7 +339,10 @@
= link_to project_settings_ci_cd_path(@project), title: _('CI / CD') do
%span
= _('CI / CD')
= render_if_exists 'projects/sidebar/settings_operations'
- if settings_operations_available?
= nav_link(controller: [:operations]) do
= link_to project_settings_operations_path(@project), title: _('Operations') do
= _('Operations')
- if @project.pages_available?
= nav_link(controller: :pages) do
= link_to project_pages_path(@project), title: _('Pages') do
Loading
Loading
- @content_class = 'limit-container-width' unless fluid_layout
- page_title _('Operations')
= render_if_exists 'projects/settings/operations/tracing'
Loading
Loading
@@ -445,6 +445,10 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
# its preferable to keep it below all other project routes
draw :wiki
draw :repository
namespace :settings do
resource :operations, only: [:show, :update]
end
end
 
resources(:projects,
Loading
Loading
Loading
Loading
@@ -7818,6 +7818,9 @@ msgstr ""
msgid "Your changes have been committed. Commit %{commitId} %{commitStats}"
msgstr ""
 
msgid "Your changes have been saved"
msgstr ""
msgid "Your comment will not be visible to the public."
msgstr ""
 
Loading
Loading
# frozen_string_literal: true
require 'spec_helper'
describe Projects::Settings::OperationsController do
set(:user) { create(:user) }
set(:project) { create(:project) }
before do
sign_in(user)
project.add_maintainer(user)
end
describe 'GET #show' do
it 'returns 404' do
get :show, params: project_params(project)
expect(response).to have_gitlab_http_status(:not_found)
end
end
describe 'PATCH #update' do
it 'returns 404' do
patch :update, params: project_params(project)
expect(response).to have_gitlab_http_status(:not_found)
end
end
private
def project_params(project)
{ namespace_id: project.namespace, project_id: project }
end
end
# frozen_string_literal: true
require 'spec_helper'
describe Projects::Operations::UpdateService do
set(:user) { create(:user) }
set(:project) { create(:project) }
let(:result) { subject.execute }
subject { described_class.new(project, user, params) }
describe '#execute' do
context 'with inappropriate params' do
let(:params) { { name: '' } }
let!(:original_name) { project.name }
it 'ignores params' do
expect(result[:status]).to eq(:success)
expect(project.reload.name).to eq(original_name)
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment