]> git.openstreetmap.org Git - rails.git/blobdiff - app/mailers/notifier.rb
Move user images to Active Storage with paperclip as a fallback
[rails.git] / app / mailers / notifier.rb
index 4b53c66f6825f1b38d5fdbde69653002762e9896..bd2c83b56e245f34f5058003f1b382fe2f2a4517 100644 (file)
@@ -1,6 +1,8 @@
 class Notifier < ActionMailer::Base
-  default :from => EMAIL_FROM,
-          :return_path => EMAIL_RETURN_PATH,
+  include ActionView::Helpers::AssetUrlHelper
+
+  default :from => Settings.email_from,
+          :return_path => Settings.email_return_path,
           :auto_submitted => "auto-generated"
   helper :application
   before_action :set_shared_template_vars
@@ -177,7 +179,16 @@ class Notifier < ActionMailer::Base
   end
 
   def attach_user_avatar(user)
-    attachments.inline["avatar.png"] = File.read(user_avatar_file_path(user))
+    attachments.inline["avatar.png"] = user_avatar_file(user)
+  end
+
+  def user_avatar_file(user)
+    avatar = user&.avatar
+    if avatar&.attached?
+      return avatar.variant(:resize => "50x50>").blob.download
+    else
+      return File.read(user_avatar_file_path(user))
+    end
   end
 
   def user_avatar_file_path(user)
@@ -185,7 +196,7 @@ class Notifier < ActionMailer::Base
     if image&.file?
       return image.path(:small)
     else
-      return Rails.root.join("app", "assets", "images", "users", "images", "small.png")
+      return Rails.root.join("app", "assets", "images", "avatar_small.png")
     end
   end
 
@@ -196,14 +207,14 @@ class Notifier < ActionMailer::Base
   end
 
   def from_address(name, type, id, digest, user_id = nil)
-    if Object.const_defined?(:MESSAGES_DOMAIN) && domain = MESSAGES_DOMAIN
+    if Settings.key?(:messages_domain) && domain = Settings.messages_domain
       if user_id
         "#{name} <#{type}-#{id}-#{user_id}-#{digest[0, 6]}@#{domain}>"
       else
         "#{name} <#{type}-#{id}-#{digest[0, 6]}@#{domain}>"
       end
     else
-      EMAIL_FROM
+      Settings.email_from
     end
   end
 end