X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cb775c17c561a60b975a97a97fc9c0153f6954d6..a6b9fb8166440eef3144150024a875c858db9bb6:/services/api/app/mailers/admin_notifier.rb diff --git a/services/api/app/mailers/admin_notifier.rb b/services/api/app/mailers/admin_notifier.rb index 5de70053dc..2c39a3924e 100644 --- a/services/api/app/mailers/admin_notifier.rb +++ b/services/api/app/mailers/admin_notifier.rb @@ -1,34 +1,38 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + class AdminNotifier < ActionMailer::Base - default from: Rails.configuration.admin_notifier_email_from + include AbstractController::Callbacks - def after_create(model, *args) - self.generic_callback('after_create', model, *args) - end + default from: Rails.configuration.Users.AdminNotifierEmailFrom + + def new_user(user) + @user = user + if not Rails.configuration.Users.NewUserNotificationRecipients.empty? then + @recipients = Rails.configuration.Users.NewUserNotificationRecipients.keys + logger.info "Sending mail to #{@recipients} about new user #{@user.uuid} (#{@user.full_name} <#{@user.email}>)" - protected + add_to_subject = '' + if Rails.configuration.Users.AutoSetupNewUsers + add_to_subject = @user.is_invited ? ' and setup' : ', but not setup' + end - def generic_callback(callback_type, model, *args) - model_specific_method = "#{callback_type}_#{model.class.to_s.underscore}".to_sym - if self.respond_to? model_specific_method - self.send model_specific_method, model, *args + mail(to: @recipients, + subject: "#{Rails.configuration.Users.EmailSubjectPrefix}New user created#{add_to_subject} notification" + ) end end - def all_admin_emails() - User. - where(is_admin: true). - collect(&:email). - compact. - uniq. - select { |e| e.match /\@/ } + def new_inactive_user(user) + @user = user + if not Rails.configuration.Users.NewInactiveUserNotificationRecipients.empty? then + @recipients = Rails.configuration.Users.NewInactiveUserNotificationRecipients.keys + logger.info "Sending mail to #{@recipients} about new user #{@user.uuid} (#{@user.full_name} <#{@user.email}>)" + mail(to: @recipients, + subject: "#{Rails.configuration.Users.EmailSubjectPrefix}New inactive user notification" + ) + end end - def after_create_user(user, *args) - @new_user = user - logger.info "Sending mail to #{@recipients} about new user #{@new_user.uuid} (#{@new_user.full_name}, #{@new_user.email})" - mail({ - to: self.all_admin_emails, - subject: "#{Rails.configuration.email_subject_prefix}New user: #{@new_user.full_name}, #{@new_user.email}" - }) - end end