34 lines
881 B
Ruby
34 lines
881 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# Formulario de contacto
|
||
|
class ContactMailer < ApplicationMailer
|
||
|
# Enviar el formulario de contacto a todes les usuaries
|
||
|
def notify_usuaries
|
||
|
# Enviar de a 10 usuaries para minimizar el riesgo que nos
|
||
|
# consideren spammers.
|
||
|
#
|
||
|
# TODO: #i18n. Agrupar usuaries por su idioma
|
||
|
usuaries.each_slice(10) do |u|
|
||
|
mail to: u,
|
||
|
reply_to: params[:from],
|
||
|
subject: I18n.t('contact_mailer.subject', site: site.title)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def site
|
||
|
@site ||= Site.find params[:site_id]
|
||
|
end
|
||
|
|
||
|
# Trae solo les usuaries definitives para eliminar un vector de ataque
|
||
|
# donde alguien crea un sitio, agrega a muches usuaries y les envía
|
||
|
# correos.
|
||
|
#
|
||
|
# TODO: Mover a Site#usuaries
|
||
|
def usuaries
|
||
|
site.roles.where(rol: 'usuarie', temporal: false).includes(:usuarie)
|
||
|
.pluck(:email)
|
||
|
end
|
||
|
end
|