X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6e0751ce5ea7332fc87e7836c24b6ccb49c399dc..aac7d8c7cc80b80d97821c88f803517cd2988bad:/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 827ff7edc9..2c39a3924e 100644 --- a/services/api/app/mailers/admin_notifier.rb +++ b/services/api/app/mailers/admin_notifier.rb @@ -1,42 +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,true) - 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 - @recipients = self.all_admin_emails - logger.info "Sending mail to #{@recipients} about new user #{@new_user.uuid} (#{@new_user.full_name}, #{@new_user.email})" - mail(template_name: __method__, - to: @recipients, - subject: "#{Rails.configuration.email_subject_prefix}New user: #{@new_user.full_name}, #{@new_user.email}" - ).deliver - end end