Merge branch '2411-check-copyright'
[arvados.git] / services / api / app / mailers / admin_notifier.rb
index 827ff7edc95f2f973dd785176d1e2e68f077366a..87a5699f49a2061a37fd2ca3117fc0bc23ce750e 100644 (file)
@@ -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.admin_notifier_email_from
 
-  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.new_user_notification_recipients.empty? then
+      @recipients = Rails.configuration.new_user_notification_recipients
+      logger.info "Sending mail to #{@recipients} about new user #{@user.uuid} (#{@user.full_name} <#{@user.email}>)"
 
-  protected
+      add_to_subject = ''
+      if Rails.configuration.auto_setup_new_users
+        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.email_subject_prefix}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.new_inactive_user_notification_recipients.empty? then
+      @recipients = Rails.configuration.new_inactive_user_notification_recipients
+      logger.info "Sending mail to #{@recipients} about new user #{@user.uuid} (#{@user.full_name} <#{@user.email}>)"
+      mail(to: @recipients,
+           subject: "#{Rails.configuration.email_subject_prefix}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