Class: AdminMailer

Inherits:
ApplicationMailer show all
Defined in:
app/mailers/admin_mailer.rb

Instance Method Summary collapse

Instance Method Details

#to_all_usersObject



20
21
22
23
24
25
26
27
28
# File 'app/mailers/admin_mailer.rb', line 20

def to_all_users
  @subject = params[:subject]
  @body_markdown = params[:body_markdown]
  @users = User.where('email NOT LIKE ?', '%localhost').select(:email).map(&:email)
  to = SiteSetting['AllUsersSenderEmail']
  from = "#{SiteSetting['AllUsersSenderName']} <#{SiteSetting['AllUsersSenderEmail']}>"
  reply_to = SiteSetting['AllUsersReplyToEmail']
  mail subject: @subject, to: to, from: from, reply_to: reply_to, bcc: @users
end

#to_moderatorsObject



7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/mailers/admin_mailer.rb', line 7

def to_moderators
  @subject = params[:subject]
  @body_markdown = params[:body_markdown]
  query = 'SELECT DISTINCT u.email FROM subscriptions s INNER JOIN users u ON s.user_id = u.id ' \
          "INNER JOIN community_users cu ON cu.user_id = u.id WHERE s.type = 'moderators' AND " \
          '(u.is_global_admin = 1 OR u.is_global_moderator = 1 OR cu.is_admin = 1 OR cu.is_moderator = 1)'
  emails = ActiveRecord::Base.connection.execute(query).to_a.flatten
  from = "#{SiteSetting['ModeratorDistributionListSenderName']} " \
         "<#{SiteSetting['ModeratorDistributionListSenderEmail']}>"
  to = SiteSetting['ModeratorDistributionListSenderEmail']
  mail subject: "Codidact Moderators: #{@subject}", to: to, from: from, bcc: emails
end