module ApplicationCable class Connection < ActionCable::Connection::Base identified_by :current_user def connect super set_current_user || reject_unauthorized_connection end private def set_current_user if session = find_session_by_cookie membership = session.identity.memberships.find_by!(tenant: current_tenant) self.current_user = membership.user if membership.user.active? end end def find_session_by_cookie Session.find_signed(cookies.signed[:session_token]) end end end