dawarich/app/controllers/users/sessions_controller.rb
2025-10-04 22:39:47 +02:00

35 lines
746 B
Ruby

# frozen_string_literal: true
class Users::SessionsController < Devise::SessionsController
before_action :load_invitation_context, only: [:new]
def new
super
end
protected
def after_sign_in_path_for(resource)
if invitation_token.present?
invitation = FamilyInvitation.find_by(token: invitation_token)
if invitation&.can_be_accepted?
return family_invitation_path(invitation.token)
end
end
super(resource)
end
private
def load_invitation_context
return unless invitation_token.present?
@invitation = FamilyInvitation.find_by(token: invitation_token)
end
def invitation_token
@invitation_token ||= params[:invitation_token] || session[:invitation_token]
end
end