From 7830fa06580ba29179cecfcd30bb442ba989987e Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Fri, 6 Sep 2013 02:23:00 +0000 Subject: [PATCH] rails3: fix user_mailer --- app/mailers/user_mailer.rb | 41 +++++++++++++++++++++++++++++++++++++++++ app/models/user.rb | 42 ------------------------------------------ test/unit/user_mailer_test.rb | 4 ++-- 3 files changed, 43 insertions(+), 44 deletions(-) create mode 100644 app/mailers/user_mailer.rb diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb new file mode 100644 index 0000000..7eb6711 --- /dev/null +++ b/app/mailers/user_mailer.rb @@ -0,0 +1,41 @@ +class User::Mailer < ActionMailer::Base + def activation_email_notify(user) + user_email = "#{user.login}@#{user.email_domain}" + @name = user.name + @email = user_email + @webmail = MailConf.webmail_url(user.login, user.email_domain) + @environment = user.environment.name + @url = url_for(:host => user.environment.default_hostname, :controller => 'home') + + mail( + to: user_email, + from: "#{user.environment.name} <#{user.environment.contact_email}>", + subject: _("[%{environment}] Welcome to %{environment} mail!") % { :environment => user.environment.name } + ) + end + + def activation_code(user) + @recipient = user.name, + @activation_code = user.activation_code + @environment = user.environment.name + @url = user.environment.top_url + + mail( + from: "#{user.environment.name} <#{user.environment.contact_email}>", + to: user.email, + subject: _("[%s] Activate your account") % [user.environment.name], + ) + end + + def signup_welcome_email(user) + @body = user.environment.signup_welcome_text_body.gsub('{user_name}', user.name) + + email_subject = user.environment.signup_welcome_text_subject + mail( + content_type: 'text/html', + recipients: user.email, + from: "#{user.environment.name} <#{user.environment.contact_email}>", + subject: email_subject.blank? ? _("Welcome to environment %s") % [user.environment.name] : email_subject + ) + end +end diff --git a/app/models/user.rb b/app/models/user.rb index 7fa42fb..d6d32f1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -62,48 +62,6 @@ class User < ActiveRecord::Base self.person.preferred_domain && self.person.preferred_domain.name || self.environment.default_hostname(true) end - class Mailer < ActionMailer::Base - - # FIXME use new ActionMailer API here - def activation_email_notify(user) - user_email = "#{user.login}@#{user.email_domain}" - recipients user_email - from "#{user.environment.name} <#{user.environment.contact_email}>" - subject _("[%{environment}] Welcome to %{environment} mail!") % { :environment => user.environment.name } - body :name => user.name, - :email => user_email, - :webmail => MailConf.webmail_url(user.login, user.email_domain), - :environment => user.environment.name, - :url => url_for(:host => user.environment.default_hostname, :controller => 'home') - end - - def activation_code(user) - @recipient = user.name, - @activation_code = user.activation_code - @environment = user.environment.name - @url = user.environment.top_url - - mail( - :from => "#{user.environment.name} <#{user.environment.contact_email}>", - :to => user.email, - :subject => _("[%s] Activate your account") % [user.environment.name], - ) - end - - # FIXME use new ActionMailer API here - def signup_welcome_email(user) - email_body = user.environment.signup_welcome_text_body.gsub('{user_name}', user.name) - email_subject = user.environment.signup_welcome_text_subject - - content_type 'text/html' - recipients user.email - - from "#{user.environment.name} <#{user.environment.contact_email}>" - subject email_subject.blank? ? _("Welcome to environment %s") % [user.environment.name] : email_subject - body email_body - end - end - def signup! User.transaction do self.save! diff --git a/test/unit/user_mailer_test.rb b/test/unit/user_mailer_test.rb index a6ef689..4e0ef76 100644 --- a/test/unit/user_mailer_test.rb +++ b/test/unit/user_mailer_test.rb @@ -14,9 +14,9 @@ class UserMailerTest < ActiveSupport::TestCase should 'deliver activation email notify' do assert_difference ActionMailer::Base.deliveries, :size do - u = Person.find(:first).user + u = create_user('some-user') u.environment = Environment.default - User::Mailer.deliver_activation_email_notify(u) + User::Mailer.activation_email_notify(u).deliver end end -- libgit2 0.21.2