otwarchive-symphonyarchive/app/mailers/admin_mailer.rb
2026-03-11 22:22:11 +00:00

35 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