X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/83a8512fad199107ff54762658a55176d479a5bb..3a9428dd1db2fd393dd90cd3ffc744c0bf45fe28:/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 d291e86f9a..2c39a3924e 100644 --- a/services/api/app/mailers/admin_notifier.rb +++ b/services/api/app/mailers/admin_notifier.rb @@ -1,41 +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_inactive_user(user) + def new_user(user) @user = user - if not Rails.configuration.new_inactive_user_notification_recipients.empty? then - mail(to: Rails.configuration.new_inactive_user_notification_recipients, subject: 'New inactive user notification') - end - end + 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