Add welcome mail

This commit is contained in:
Patrick Gansterer 2020-03-06 11:46:39 +01:00
parent 75129b52c6
commit 057f3ec8ea
9 changed files with 92 additions and 1 deletions

View file

@ -20,7 +20,7 @@ class User < ApplicationRecord
has_many :created_orders, :class_name => 'Order', :foreign_key => 'created_by_user_id', :dependent => :nullify
has_many :mail_delivery_status, :class_name => 'MailDeliveryStatus', :foreign_key => 'email', :primary_key => 'email'
attr_accessor :create_ordergroup, :password, :settings_attributes
attr_accessor :create_ordergroup, :password, :send_welcome_mail, :settings_attributes
scope :deleted, -> { where.not(deleted_at: nil) }
scope :undeleted, -> { where(deleted_at: nil) }
@ -52,6 +52,13 @@ class User < ApplicationRecord
settings.defaults['notify'] = { 'upcoming_tasks' => true } unless settings.notify
end
before_save do
if send_welcome_mail?
self.reset_password_token = new_random_password(16)
self.reset_password_expires = Time.now.advance(days: 2)
end
end
after_save do
settings_attributes.each do |key, value|
value.each do |k, v|
@ -70,6 +77,12 @@ class User < ApplicationRecord
og.memberships.build({user: self})
og.save!
end
Mailer.welcome(self).deliver_now if send_welcome_mail?
end
def send_welcome_mail?
ActiveRecord::Type::Boolean.new.type_cast_from_user(send_welcome_mail)
end
# sorted by display name