discourse/app/mailers/invite_mailer.rb

70 lines
2.3 KiB
Ruby
Raw Normal View History

require_dependency 'email/message_builder'
2013-02-05 14:16:51 -05:00
class InviteMailer < ActionMailer::Base
include Email::BuildEmailHelper
2013-02-07 10:45:24 -05:00
class UserNotificationRenderer < ActionView::Base
include UserNotificationsHelper
end
def send_invite(invite, custom_message=nil)
2013-02-05 14:16:51 -05:00
# Find the first topic they were invited to
first_topic = invite.topics.order(:created_at).first
2014-07-10 01:27:40 -04:00
# get invitee name (based on site setting)
invitee_name = invite.invited_by.username
if SiteSetting.enable_names && invite.invited_by.name.present?
2014-07-10 01:27:40 -04:00
invitee_name = "#{invite.invited_by.name} (#{invite.invited_by.username})"
end
2013-02-05 14:16:51 -05:00
# If they were invited to a topic
if first_topic.present?
# get topic excerpt
topic_excerpt = ""
if first_topic.excerpt
topic_excerpt = first_topic.excerpt.tr("\n", " ")
end
2016-06-08 08:34:25 -04:00
template = 'invite_mailer'
if custom_message.present?
template = 'custom_invite_mailer'
end
build_email(invite.email,
2016-06-08 08:34:25 -04:00
template: template,
invitee_name: invitee_name,
site_domain_name: Discourse.current_hostname,
invite_link: "#{Discourse.base_url}/invites/#{invite.invite_key}",
2014-06-14 18:49:19 -04:00
topic_title: first_topic.try(:title),
topic_excerpt: topic_excerpt,
2014-06-14 18:49:19 -04:00
site_description: SiteSetting.site_description,
2016-06-08 08:34:25 -04:00
site_title: SiteSetting.title,
user_custom_message: custom_message)
else
2016-06-08 08:34:25 -04:00
template = 'invite_forum_mailer'
if custom_message.present?
template = 'custom_invite_forum_mailer'
end
build_email(invite.email,
2016-06-08 08:34:25 -04:00
template: template,
2014-07-10 01:27:40 -04:00
invitee_name: invitee_name,
site_domain_name: Discourse.current_hostname,
2014-06-14 18:49:19 -04:00
invite_link: "#{Discourse.base_url}/invites/#{invite.invite_key}",
site_description: SiteSetting.site_description,
2016-06-08 08:34:25 -04:00
site_title: SiteSetting.title,
user_custom_message: custom_message)
end
2013-02-05 14:16:51 -05:00
end
def send_password_instructions(user)
if user.present?
email_token = user.email_tokens.create(email: user.email)
build_email(user.email,
template: 'invite_password_instructions',
email_token: email_token.token)
end
end
2013-02-05 14:16:51 -05:00
end