Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/channels/application_cable')
-rw-r--r--app/channels/application_cable/channel.rb11
-rw-r--r--app/channels/application_cable/connection.rb8
-rw-r--r--app/channels/application_cable/logging.rb17
3 files changed, 36 insertions, 0 deletions
diff --git a/app/channels/application_cable/channel.rb b/app/channels/application_cable/channel.rb
index 9aec2305390..0de2b0185b5 100644
--- a/app/channels/application_cable/channel.rb
+++ b/app/channels/application_cable/channel.rb
@@ -2,5 +2,16 @@
module ApplicationCable
class Channel < ActionCable::Channel::Base
+ include Logging
+
+ private
+
+ def notification_payload(_)
+ super.merge!(params: params.except(:channel))
+ end
+
+ def request
+ connection.request
+ end
end
end
diff --git a/app/channels/application_cable/connection.rb b/app/channels/application_cable/connection.rb
index 87c833f3593..1361269f2a2 100644
--- a/app/channels/application_cable/connection.rb
+++ b/app/channels/application_cable/connection.rb
@@ -2,8 +2,12 @@
module ApplicationCable
class Connection < ActionCable::Connection::Base
+ include Logging
+
identified_by :current_user
+ public :request
+
def connect
self.current_user = find_user_from_session_store
end
@@ -18,5 +22,9 @@ module ApplicationCable
def session_id
Rack::Session::SessionId.new(cookies[Gitlab::Application.config.session_options[:key]])
end
+
+ def notification_payload(_)
+ super.merge!(params: request.params)
+ end
end
end
diff --git a/app/channels/application_cable/logging.rb b/app/channels/application_cable/logging.rb
new file mode 100644
index 00000000000..4152f8c779f
--- /dev/null
+++ b/app/channels/application_cable/logging.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+module ApplicationCable
+ module Logging
+ private
+
+ def notification_payload(_)
+ super.merge!(
+ Labkit::Correlation::CorrelationId::LOG_KEY => request.request_id,
+ user_id: current_user&.id,
+ username: current_user&.username,
+ remote_ip: request.remote_ip,
+ ua: request.env['HTTP_USER_AGENT']
+ )
+ end
+ end
+end