diff options
author | GitLab Release Tools Bot <robert+release-tools@gitlab.com> | 2019-10-29 18:58:06 +0300 |
---|---|---|
committer | GitLab Release Tools Bot <robert+release-tools@gitlab.com> | 2019-10-29 18:58:06 +0300 |
commit | d7f9136904d164afd7b1ac236f6f814729083e61 (patch) | |
tree | 8d7c2d11dd2f34870c709121188cce79bb45185b /app/services | |
parent | 417e58fdc57523f11bb57f8aca7ff9121c3d3ee9 (diff) | |
parent | 576818b578be87a90c60c1e734fd5f6df48bb82f (diff) |
Merge branch 'security-mask-sentry-token-ce' into 'master'
Mask sentry auth token
See merge request gitlab/gitlabhq!3462
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/error_tracking/list_projects_service.rb | 9 | ||||
-rw-r--r-- | app/services/projects/operations/update_service.rb | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/app/services/error_tracking/list_projects_service.rb b/app/services/error_tracking/list_projects_service.rb index 8d08f0cda94..92d4ef85ecf 100644 --- a/app/services/error_tracking/list_projects_service.rb +++ b/app/services/error_tracking/list_projects_service.rb @@ -32,7 +32,7 @@ module ErrorTracking project_slug: 'proj' ) - setting.token = params[:token] + setting.token = token(setting) setting.enabled = true end end @@ -40,5 +40,12 @@ module ErrorTracking def can_read? can?(current_user, :read_sentry_issue, project) end + + def token(setting) + # Use param token if not masked, otherwise use database token + return params[:token] unless /\A\*+\z/.match?(params[:token]) + + setting.token + end end end diff --git a/app/services/projects/operations/update_service.rb b/app/services/projects/operations/update_service.rb index 64519501ff4..0ca89664304 100644 --- a/app/services/projects/operations/update_service.rb +++ b/app/services/projects/operations/update_service.rb @@ -36,15 +36,17 @@ module Projects organization_slug: settings.dig(:project, :organization_slug) ) - { + params = { error_tracking_setting_attributes: { api_url: api_url, - token: settings[:token], enabled: settings[:enabled], project_name: settings.dig(:project, :name), organization_name: settings.dig(:project, :organization_name) } } + params[:error_tracking_setting_attributes][:token] = settings[:token] unless /\A\*+\z/.match?(settings[:token]) # Don't update token if we receive masked value + + params end def grafana_integration_params |