summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRyan Cobb <rcobb@gitlab.com>2019-10-07 15:07:18 -0700
committerRyan Cobb <rcobb@gitlab.com>2019-10-24 11:06:40 -0700
commit5c072495284de9aae26b1efcefcefc1d8571065a (patch)
tree2f3a3d346cd352ee2df801371e8d1c5b11c1d1bc /app
parent1425a56c75beecaa289ad59587d636f8f469509e (diff)
downloadgitlab-ce-5c072495284de9aae26b1efcefcefc1d8571065a.tar.gz
Mask Sentry auth token
This makes it so we mask Sentry's auth token. This mask only occurs in the UI.
Diffstat (limited to 'app')
-rw-r--r--app/services/error_tracking/list_projects_service.rb9
-rw-r--r--app/services/projects/operations/update_service.rb6
-rw-r--r--app/views/projects/settings/operations/_error_tracking.html.haml2
3 files changed, 13 insertions, 4 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
diff --git a/app/views/projects/settings/operations/_error_tracking.html.haml b/app/views/projects/settings/operations/_error_tracking.html.haml
index 583fc08f375..589d3037eba 100644
--- a/app/views/projects/settings/operations/_error_tracking.html.haml
+++ b/app/views/projects/settings/operations/_error_tracking.html.haml
@@ -17,4 +17,4 @@
project: error_tracking_setting_project_json,
api_host: setting.api_host,
enabled: setting.enabled.to_json,
- token: setting.token } }
+ token: setting.token.present? ? '*' * 12 : nil } }