26 lines
660 B
Ruby
26 lines
660 B
Ruby
class InvitationsController < ApplicationController
|
|
def new
|
|
@user = User.new
|
|
end
|
|
|
|
def create
|
|
@user = User.create_with(user_params).find_or_initialize_by(email: params[:email])
|
|
|
|
if @user.save
|
|
send_invitation_instructions
|
|
redirect_to new_invitation_path, notice: "An invitation email has been sent to #{@user.email}"
|
|
else
|
|
render :new, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
private
|
|
def user_params
|
|
params.permit(:email).merge(password: SecureRandom.base58, verified: true)
|
|
end
|
|
|
|
def send_invitation_instructions
|
|
UserMailer.with(user: @user).invitation_instructions.deliver_later
|
|
end
|
|
end
|