Billing Stripe, link regia mobile e staff solo trasmissione.
Aggiunge fatturazione club, pagina regia condivisibile senza account, roster squadre e rimuove la modalità controller dall'app (v1.1.0). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,8 +1,14 @@
|
||||
module ApplicationCable
|
||||
class Connection < ActionCable::Connection::Base
|
||||
identified_by :current_user
|
||||
identified_by :current_user, :regia_session
|
||||
|
||||
def connect
|
||||
if (regia_token = request.params[:regia_token].presence)
|
||||
self.regia_session = Sessions::RegiaAccess.find_session_by_token(regia_token)
|
||||
reject_unauthorized_connection unless regia_session
|
||||
return
|
||||
end
|
||||
|
||||
payload = JsonWebToken.decode(token_from_header)
|
||||
self.current_user = User.find_by(id: payload[:user_id]) if payload
|
||||
reject_unauthorized_connection unless current_user
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
class SessionChannel < ApplicationCable::Channel
|
||||
include CableBroadcastable
|
||||
def subscribed
|
||||
session = StreamSession.joins(match: :team)
|
||||
.merge(current_user.manageable_teams)
|
||||
.find(params[:session_id])
|
||||
session = resolve_session
|
||||
reject unless session && session.id.to_s == params[:session_id].to_s
|
||||
|
||||
stream_for session
|
||||
session.device_states.find_or_create_by!(device_role: params[:device_role] || "controller")
|
||||
end
|
||||
|
||||
def resolve_session
|
||||
if connection.regia_session
|
||||
connection.regia_session
|
||||
else
|
||||
StreamSession.joins(match: :team)
|
||||
.merge(connection.current_user.manageable_teams)
|
||||
.find_by(id: params[:session_id])
|
||||
end
|
||||
end
|
||||
|
||||
def unsubscribed
|
||||
stop_all_streams
|
||||
end
|
||||
|
||||
def receive(data)
|
||||
session = StreamSession.find(params[:session_id])
|
||||
session = resolve_session
|
||||
return unless session
|
||||
|
||||
handle_message(session, data)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user