summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorPeter Leitzen <pleitzen@gitlab.com>2019-01-07 19:46:34 +0100
committerPeter Leitzen <pleitzen@gitlab.com>2019-01-07 19:46:34 +0100
commit6710c87434e6d2508dc6b2553594258e77d23723 (patch)
tree50cb2758d6038831dfa2b53782e24b4aac6b6cea /app
parent191c20d71447dca1a516b27c01a152a43cf8be69 (diff)
downloadgitlab-ce-6710c87434e6d2508dc6b2553594258e77d23723.tar.gz
Implement error tracking configuration
Re-use operations controller which already handles tracing settings.
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/settings/operations_controller.rb9
-rw-r--r--app/helpers/projects_helper.rb2
-rw-r--r--app/models/project.rb2
-rw-r--r--app/services/projects/operations/update_service.rb2
4 files changed, 12 insertions, 3 deletions
diff --git a/app/controllers/projects/settings/operations_controller.rb b/app/controllers/projects/settings/operations_controller.rb
index ae8ac61ad46..521ec2acebb 100644
--- a/app/controllers/projects/settings/operations_controller.rb
+++ b/app/controllers/projects/settings/operations_controller.rb
@@ -6,6 +6,8 @@ module Projects
before_action :check_license
before_action :authorize_update_environment!
+ helper_method :error_tracking_setting
+
def show
end
@@ -22,13 +24,18 @@ module Projects
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
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index e23e6ec49e4..e67c327f7f8 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -285,7 +285,7 @@ module ProjectsHelper
# overridden in EE
def settings_operations_available?
- false
+ Feature.enabled?(:error_tracking, @project) && can?(current_user, :read_environment, @project)
end
private
diff --git a/app/models/project.rb b/app/models/project.rb
index 9d0348d848a..d57098407d0 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -296,6 +296,8 @@ class Project < ActiveRecord::Base
allow_destroy: true,
reject_if: ->(attrs) { attrs[:id].blank? && attrs[:url].blank? }
+ accepts_nested_attributes_for :error_tracking_setting, update_only: true
+
delegate :name, to: :owner, allow_nil: true, prefix: true
delegate :members, to: :team, prefix: true
delegate :add_user, :add_users, to: :team
diff --git a/app/services/projects/operations/update_service.rb b/app/services/projects/operations/update_service.rb
index 7ff0599ee95..abd6d8de750 100644
--- a/app/services/projects/operations/update_service.rb
+++ b/app/services/projects/operations/update_service.rb
@@ -12,7 +12,7 @@ module Projects
private
def project_update_params
- {}
+ params.slice(:error_tracking_setting_attributes)
end
end
end