mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-22 14:49:38 +02:00
43 lines
974 B
Ruby
43 lines
974 B
Ruby
|
class InvitationsController < ApplicationController
|
||
|
skip_authentication only: :accept
|
||
|
def new
|
||
|
@invitation = Invitation.new
|
||
|
end
|
||
|
|
||
|
def create
|
||
|
unless Current.user.admin?
|
||
|
flash[:alert] = t(".failure")
|
||
|
redirect_to settings_profile_path
|
||
|
return
|
||
|
end
|
||
|
|
||
|
@invitation = Current.family.invitations.build(invitation_params)
|
||
|
@invitation.inviter = Current.user
|
||
|
|
||
|
if @invitation.save
|
||
|
InvitationMailer.invite_email(@invitation).deliver_later unless self_hosted?
|
||
|
flash[:notice] = t(".success")
|
||
|
else
|
||
|
flash[:alert] = t(".failure")
|
||
|
end
|
||
|
|
||
|
redirect_to settings_profile_path
|
||
|
end
|
||
|
|
||
|
def accept
|
||
|
@invitation = Invitation.find_by!(token: params[:id])
|
||
|
|
||
|
if @invitation.pending?
|
||
|
redirect_to new_registration_path(invitation: @invitation.token)
|
||
|
else
|
||
|
raise ActiveRecord::RecordNotFound
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def invitation_params
|
||
|
params.require(:invitation).permit(:email, :role)
|
||
|
end
|
||
|
end
|