36 lines
1.3 KiB
Ruby
36 lines
1.3 KiB
Ruby
|
|
class AdminMailer < ApplicationMailer
|
||
|
|
# Sends a spam report
|
||
|
|
def send_spam_alert(spam)
|
||
|
|
# Make sure that the keys of the spam array are integers, so that we can do
|
||
|
|
# an easy look-up with user IDs. We call stringify_keys first because
|
||
|
|
# the currently installed version of Resque::Mailer does odd things when
|
||
|
|
# you pass a hash as an argument, and we want to know what we're dealing with.
|
||
|
|
@spam = spam.stringify_keys.transform_keys(&:to_i)
|
||
|
|
|
||
|
|
@users = User.where(id: @spam.keys).to_a
|
||
|
|
return if @users.empty?
|
||
|
|
|
||
|
|
# The users might have been retrieved from the database out of order, so
|
||
|
|
# re-sort them by their score.
|
||
|
|
@users.sort_by! { |user| @spam[user.id]["score"] }.reverse!
|
||
|
|
|
||
|
|
mail(
|
||
|
|
to: ArchiveConfig.SPAM_ALERT_ADDRESS,
|
||
|
|
subject: "[#{ArchiveConfig.APP_SHORT_NAME}] Potential spam alert"
|
||
|
|
)
|
||
|
|
end
|
||
|
|
|
||
|
|
# Emails newly created admin, giving them info about their account and a link
|
||
|
|
# to set their password. Expects the raw password reset token (not the
|
||
|
|
# encrypted one in the database); it is used to create the reset link.
|
||
|
|
def set_password_notification(admin, token)
|
||
|
|
@admin = admin
|
||
|
|
@token = token
|
||
|
|
|
||
|
|
mail(
|
||
|
|
to: @admin.email,
|
||
|
|
subject: t(".subject", app_name: ArchiveConfig.APP_SHORT_NAME)
|
||
|
|
)
|
||
|
|
end
|
||
|
|
end
|