Aggiunge i tornei con hub, pagina pubblica e tabellone per semifinali e finali.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,26 +2,40 @@ module Public
|
||||
class InvitationsController < WebBaseController
|
||||
def show
|
||||
@token = params[:token]
|
||||
@invitation = TeamInvitation.pending.find_by(token_digest: Digest::SHA256.hexdigest(@token.to_s))
|
||||
unless @invitation
|
||||
digest = Digest::SHA256.hexdigest(@token.to_s)
|
||||
@invitation = TeamInvitation.pending.find_by(token_digest: digest)
|
||||
@tournament_invitation = TournamentBroadcastInvitation.pending.find_by(token_digest: digest) unless @invitation
|
||||
unless @invitation || @tournament_invitation
|
||||
redirect_to public_pricing_path, alert: t("flash.invitations.invalid_or_expired")
|
||||
end
|
||||
end
|
||||
|
||||
def accept
|
||||
invitation = TeamInvitation.pending.find_by(token_digest: Digest::SHA256.hexdigest(params[:token].to_s))
|
||||
return redirect_to public_pricing_path, alert: t("flash.invitations.invalid") unless invitation
|
||||
token = params[:token].to_s
|
||||
digest = Digest::SHA256.hexdigest(token)
|
||||
invitation = TeamInvitation.pending.find_by(token_digest: digest)
|
||||
tournament_invitation = TournamentBroadcastInvitation.pending.find_by(token_digest: digest) unless invitation
|
||||
|
||||
if logged_in?
|
||||
if current_user.email.downcase != invitation.email.downcase
|
||||
redirect_to public_pricing_path, alert: t("flash.invitations.wrong_email", email: invitation.email)
|
||||
return
|
||||
end
|
||||
unless invitation || tournament_invitation
|
||||
return redirect_to public_pricing_path, alert: t("flash.invitations.invalid")
|
||||
end
|
||||
|
||||
target_email = (invitation || tournament_invitation).email
|
||||
unless logged_in?
|
||||
session[:pending_invite_token] = token
|
||||
return redirect_to public_signup_path, notice: t("flash.invitations.signup_to_accept", email: target_email)
|
||||
end
|
||||
|
||||
if current_user.email.downcase != target_email.downcase
|
||||
return redirect_to public_pricing_path, alert: t("flash.invitations.wrong_email", email: target_email)
|
||||
end
|
||||
|
||||
if invitation
|
||||
invitation.accept!(current_user)
|
||||
redirect_to public_team_details_path(invitation.team), notice: t("flash.invitations.joined_team")
|
||||
else
|
||||
session[:pending_invite_token] = params[:token]
|
||||
redirect_to public_signup_path, notice: t("flash.invitations.signup_to_accept", email: invitation.email)
|
||||
tournament_invitation.accept!(current_user)
|
||||
redirect_to public_account_path, notice: t("flash.invitations.joined_tournament")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user