Module: Invitations::Base
- Extended by:
- ActiveSupport::Concern
- Included in:
- Invitation
- Defined in:
- app/models/concerns/invitations/base.rb
Instance Method Summary collapse
- #accept_for(user) ⇒ Object
- #hoist_membership_email_error ⇒ Object
- #is_for?(user) ⇒ Boolean
- #name ⇒ Object
- #send_invitation_email ⇒ Object
- #set_added_by_membership ⇒ Object
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_error ⇒ Object
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
46 47 48 |
# File 'app/models/concerns/invitations/base.rb', line 46 def is_for?(user) user.email.downcase.strip == email.downcase.strip end |
#name ⇒ Object
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_email ⇒ Object
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_membership ⇒ Object
26 27 28 |
# File 'app/models/concerns/invitations/base.rb', line 26 def set_added_by_membership membership.update(added_by: from_membership) end |