Class: DeviseInvitations::InvitationsController

Inherits:
Devise::InvitationsController
  • Object
show all
Defined in:
lib/devise_invitations/controller.rb

Instance Method Summary collapse

Instance Method Details

#acceptObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/devise_invitations/controller.rb', line 2

def accept
  invitation = DeviseInvitations::Invitation.pending.find_by(token: params[:token])

  if invitation.present? && invitation.valid?
    user = User.invite!(
      invitation_params(invitation).merge(
        skip_invitation: true
      ),
      invitation.sent_by
    )

    user.update(invitation_sent_at: Time.now.utc)

    statuses = DeviseInvitations::Invitation.statuses
    invitation.update(status: statuses[:accepted])
    DeviseInvitations::Invitation.pending
      .where(email: invitation.email)
      .update_all(status: statuses[:ignored])

    redirect_to accept_invitation_url(user, invitation_token: user.raw_invitation_token)
  else
    flash[:error] = t('en.invitations.accept.not_valid')
    redirect_to root_path
  end
end