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 44 def ban_user_mail_with_reason(user, reason, deactivated_profile)
45 45 subject = _("[%{environment}] Profile deactivated") % { :environment => user.environment.name }
46 46 @reason = reason
  47 + @deactivated_name = deactivated_profile.name
  48 + end
  49 +
  50 + def ban_user_mail(user)
47 51 @recipient = user.name
48 52 @name = user.name
49   - @deactivated_name = deactivated_profile.name
  53 + @email = user.email
50 54 @environment = user.environment.name
51 55 @url = url_for(:host => user.environment.default_hostname, :controller => 'home')
52 56 mail(
53 57 to: user.email,
54 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 61 end
58 62  
... ...
app/models/user.rb
... ... @@ -133,6 +133,7 @@ class User &lt; ActiveRecord::Base
133 133 self.person.visible = false
134 134 begin
135 135 self.person.save! && self.save!
  136 + UserMailer.ban_user_mail(person.user).deliver
136 137 rescue Exception => exception
137 138 logger.error(exception.to_s)
138 139 false
... ...
app/views/user_mailer/ban_user_mail.html.erb 0 → 100644
... ... @@ -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 18 end
19 19 end
20 20  
  21 +<<<<<<< HEAD
21 22 should 'deliver deactivation email' do
22 23 assert_difference 'ActionMailer::Base.deliveries.size' do
23 24 u = create_user('some-user')
... ... @@ -31,6 +32,18 @@ class UserMailerTest &lt; ActiveSupport::TestCase
31 32 assert_match("[#{u.environment}] Profile deactivated", email.subject)
32 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 47 private
35 48  
36 49 def read_fixture(action)
... ...