46 lines
1.1 KiB
Ruby
46 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Projects
|
|
module Settings
|
|
class OperationsController < Projects::ApplicationController
|
|
before_action :check_license
|
|
before_action :authorize_update_environment!
|
|
|
|
helper_method :error_tracking_setting
|
|
|
|
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 error_tracking_setting
|
|
@error_tracking_setting ||= project.error_tracking_setting ||
|
|
project.build_error_tracking_setting
|
|
end
|
|
|
|
def update_params
|
|
params.require(:project).permit(permitted_project_params)
|
|
end
|
|
|
|
# overridden in EE
|
|
def permitted_project_params
|
|
{ error_tracking_setting_attributes: [:enabled, :api_url, :token] }
|
|
end
|
|
|
|
def check_license
|
|
render_404 unless helpers.settings_operations_available?
|
|
end
|
|
end
|
|
end
|
|
end
|