Files
fizzy/app/controllers/signup/accounts_controller.rb
T
2025-06-20 15:16:57 -04:00

31 lines
881 B
Ruby

class Signup::AccountsController < Signup::BaseController
before_action :reset_signup_storage
rate_limit to: 10, within: 3.minutes, only: :create, with: -> { redirect_to new_signup_account_path, alert: "Try again later." }
def new
@signup = Signup.new
end
def create
@signup = Signup.new(signup_params)
if @signup.recognized?
store_signup
redirect_to Launchpad.authentication_url(purpose: "signup", login_hint: @signup.email_address, redirect_uri: signup_session_url), allow_other_host: true
elsif @signup.process
redirect_to_account(@signup.account)
else
render :new, status: :unprocessable_entity
end
end
private
def signup_params
params.require(:signup).permit(*Signup::PERMITTED_KEYS)
end
def store_signup
@signup.to_h.each { |key, value| signup_storage[key.to_s] = value }
end
end