Module: Invitations::Base

Extended by:
ActiveSupport::Concern
Included in:
Invitation
Defined in:
app/models/concerns/invitations/base.rb

Instance Method Summary collapse

Instance Method Details

#accept_for(user) ⇒ Object



34
35
36
37
38
39
40
# File 'app/models/concerns/invitations/base.rb', line 34

def accept_for(user)
  User.transaction do
    user.memberships << membership
    user.update(current_team: team, former_user: false)
    destroy
  end
end

#hoist_membership_email_errorObject



50
51
52
53
54
55
56
57
# File 'app/models/concerns/invitations/base.rb', line 50

def hoist_membership_email_error
  # This is special handling for the email field because we have a uniqueness validation in the
  # `Membership` model for the `user_email` field. Since we copy the value from `invitation.email`
  # into `invitation.membership.user_email` the error isn't passed through to the form in the normal way.
  errors[:"membership.user_email"]&.each do |error|
    errors.add(:email, error)
  end
end

#is_for?(user) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'app/models/concerns/invitations/base.rb', line 46

def is_for?(user)
  user.email.downcase.strip == email.downcase.strip
end

#nameObject



42
43
44
# File 'app/models/concerns/invitations/base.rb', line 42

def name
  I18n.t("invitations.values.name", team_name: team.name)
end

#send_invitation_emailObject



30
31
32
# File 'app/models/concerns/invitations/base.rb', line 30

def send_invitation_email
  UserMailer.invited(uuid).deliver_later
end

#set_added_by_membershipObject



26
27
28
# File 'app/models/concerns/invitations/base.rb', line 26

def set_added_by_membership
  membership.update(added_by: from_membership)
end