Commit acff33fea0161d24e6b31d73cf9b11d3fe6d97a3

Authored by Gust
Committed by Luciano Prestes
1 parent 953a006f

AI3285: Send email when user is deactivated

- Add ban_user_mail.html.erb template
- Add tests

Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Parley Martins <parley@outlook.com>
app/mailers/user_mailer.rb
@@ -44,15 +44,19 @@ class UserMailer &lt; ActionMailer::Base @@ -44,15 +44,19 @@ class UserMailer &lt; ActionMailer::Base
44 def ban_user_mail_with_reason(user, reason, deactivated_profile) 44 def ban_user_mail_with_reason(user, reason, deactivated_profile)
45 subject = _("[%{environment}] Profile deactivated") % { :environment => user.environment.name } 45 subject = _("[%{environment}] Profile deactivated") % { :environment => user.environment.name }
46 @reason = reason 46 @reason = reason
  47 + @deactivated_name = deactivated_profile.name
  48 + end
  49 +
  50 + def ban_user_mail(user)
47 @recipient = user.name 51 @recipient = user.name
48 @name = user.name 52 @name = user.name
49 - @deactivated_name = deactivated_profile.name 53 + @email = user.email
50 @environment = user.environment.name 54 @environment = user.environment.name
51 @url = url_for(:host => user.environment.default_hostname, :controller => 'home') 55 @url = url_for(:host => user.environment.default_hostname, :controller => 'home')
52 mail( 56 mail(
53 to: user.email, 57 to: user.email,
54 from: "#{user.environment.name} <#{user.environment.contact_email}>", 58 from: "#{user.environment.name} <#{user.environment.contact_email}>",
55 - subject: _(subject) % { :environment => user.environment.name } 59 + subject: _(subject) % { :environment => user.environment.name }
56 ) 60 )
57 end 61 end
58 62
app/models/user.rb
@@ -133,6 +133,7 @@ class User &lt; ActiveRecord::Base @@ -133,6 +133,7 @@ class User &lt; ActiveRecord::Base
133 self.person.visible = false 133 self.person.visible = false
134 begin 134 begin
135 self.person.save! && self.save! 135 self.person.save! && self.save!
  136 + UserMailer.ban_user_mail(person.user).deliver
136 rescue Exception => exception 137 rescue Exception => exception
137 logger.error(exception.to_s) 138 logger.error(exception.to_s)
138 false 139 false
app/views/user_mailer/ban_user_mail.html.erb 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +<%= _('Hello %s,') % @name %>
  2 +
  3 +<%= _('Your email %s was just deactivated.') % [@email] %>
  4 +
  5 +<%= _('Please contact the administrator') %>
  6 +<%= @webmail %>
  7 +
  8 +<%= _('Greetings,') %>
  9 +
  10 +--
  11 +<%= _('%s team.') % @environment %>
  12 +<%= @url %>
test/unit/user_mailer_test.rb
@@ -18,6 +18,7 @@ class UserMailerTest &lt; ActiveSupport::TestCase @@ -18,6 +18,7 @@ class UserMailerTest &lt; ActiveSupport::TestCase
18 end 18 end
19 end 19 end
20 20
  21 +<<<<<<< HEAD
21 should 'deliver deactivation email' do 22 should 'deliver deactivation email' do
22 assert_difference 'ActionMailer::Base.deliveries.size' do 23 assert_difference 'ActionMailer::Base.deliveries.size' do
23 u = create_user('some-user') 24 u = create_user('some-user')
@@ -31,6 +32,18 @@ class UserMailerTest &lt; ActiveSupport::TestCase @@ -31,6 +32,18 @@ class UserMailerTest &lt; ActiveSupport::TestCase
31 assert_match("[#{u.environment}] Profile deactivated", email.subject) 32 assert_match("[#{u.environment}] Profile deactivated", email.subject)
32 end 33 end
33 34
  35 + should 'deliver deactivation email notify' do
  36 + user = create_user('some-user', :email => 'teste@teste.com')
  37 + assert_difference 'ActionMailer::Base.deliveries.size' do
  38 + UserMailer.ban_user_mail(user).deliver
  39 + end
  40 + end
  41 +
  42 + should 'verify deactivation email notification' do
  43 + user = create_user('some-user', :email => 'teste@teste.com')
  44 + email = UserMailer.ban_user_mail(user).deliver
  45 + end
  46 +
34 private 47 private
35 48
36 def read_fixture(action) 49 def read_fixture(action)