mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
25 lines
944 B
Ruby
25 lines
944 B
Ruby
# frozen_string_literal: true
|
|
|
|
module ApplicationCable
|
|
class Connection < ActionCable::Connection::Base
|
|
identified_by :session_id, :current_user
|
|
|
|
def connect
|
|
# initializes Warden after a cold start, in case you're visitor #1
|
|
env["warden"].authenticated?
|
|
# the problem with only using session is that users often login on multiple devices
|
|
self.current_user = env["warden"].user
|
|
# the problem with only using user is that sometimes you might want to use SR before you login
|
|
self.session_id = request.session.id
|
|
# and so, we recommend using both
|
|
|
|
# this assumes that you want to enable SR for unauthenticated users
|
|
reject_unauthorized_connection unless current_user || session_id
|
|
|
|
# if you want to disable SR for unauthenticated users,
|
|
# comment out the line above and uncomment the line below
|
|
# reject_unauthorized_connection unless current_user
|
|
end
|
|
end
|
|
end
|