Commit 5c973f1e34693fcd880fd347e8093ffa443f0c09

Authored by Parley
Committed by Luciano Prestes
1 parent acff33fe

AI3285: Send email when user is deleted

Add template to email, method and tests to send e-mail when user is
deleted.

Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Signed-off-by: Parley Martins <parley@outlook.com>
app/mailers/user_mailer.rb
... ... @@ -43,11 +43,26 @@ class UserMailer &lt; ActionMailer::Base
43 43  
44 44 def ban_user_mail_with_reason(user, reason, deactivated_profile)
45 45 subject = _("[%{environment}] Profile deactivated") % { :environment => user.environment.name }
46   - @reason = reason
  46 + if reason.blank?
  47 + @reason = "No reason supplied"
  48 + else
  49 + @reason = reason
  50 + end
47 51 @deactivated_name = deactivated_profile.name
  52 + send_user_mail(user, subject)
48 53 end
49 54  
50 55 def ban_user_mail(user)
  56 + subject = "[%{environment}] User Deactivated!" % { :environment => user.environment.name }
  57 + send_user_mail(user, subject)
  58 + end
  59 +
  60 + def delete_user_mail(user)
  61 + subject = "[%{environment}] User Deleted!" % { :environment => user.environment.name }
  62 + send_user_mail(user, subject)
  63 + end
  64 +
  65 + def send_user_mail(user, subject)
51 66 @recipient = user.name
52 67 @name = user.name
53 68 @email = user.email
... ...
app/models/person.rb
... ... @@ -70,6 +70,7 @@ class Person &lt; Profile
70 70  
71 71 after_destroy do |person|
72 72 Friendship.find(:all, :conditions => { :friend_id => person.id}).each { |friendship| friendship.destroy }
  73 + UserMailer.delete_user_mail(self.user).deliver
73 74 end
74 75  
75 76 belongs_to :user, :dependent => :delete
... ...
app/views/user_mailer/delete_user_mail.html.erb 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +<%= _("Hello #{@name},") %>
  2 +
  3 +<%= _("Your account #{@email} was just deleted.") %>
  4 +
  5 +<%= _("Please contact the administrator") %>
  6 +<%= @webmail %>
  7 +
  8 +<%= _('Greetings,') %>
  9 +
  10 +--
  11 +<%= _("#{@environment}'s team") %>
  12 +<%= @url %>
... ...
test/unit/user_mailer_test.rb
... ... @@ -8,17 +8,15 @@ class UserMailerTest &lt; ActiveSupport::TestCase
8 8 ActionMailer::Base.delivery_method = :test
9 9 ActionMailer::Base.perform_deliveries = true
10 10 ActionMailer::Base.deliveries = []
11   -
  11 + @user = create_user('some-user', :email => 'teste@teste.com')
12 12 end
13 13  
14 14 should 'deliver activation email notify' do
15 15 assert_difference 'ActionMailer::Base.deliveries.size' do
16   - u = create_user('some-user')
17   - UserMailer.activation_email_notify(u).deliver
  16 + UserMailer.activation_email_notify(@user).deliver
18 17 end
19 18 end
20 19  
21   -<<<<<<< HEAD
22 20 should 'deliver deactivation email' do
23 21 assert_difference 'ActionMailer::Base.deliveries.size' do
24 22 u = create_user('some-user')
... ... @@ -33,17 +31,27 @@ class UserMailerTest &lt; ActiveSupport::TestCase
33 31 end
34 32  
35 33 should 'deliver deactivation email notify' do
36   - user = create_user('some-user', :email => 'teste@teste.com')
37 34 assert_difference 'ActionMailer::Base.deliveries.size' do
38   - UserMailer.ban_user_mail(user).deliver
  35 + UserMailer.ban_user_mail(@user).deliver
39 36 end
40 37 end
41 38  
42 39 should 'verify deactivation email notification' do
43   - user = create_user('some-user', :email => 'teste@teste.com')
44   - email = UserMailer.ban_user_mail(user).deliver
  40 + @user = create_user('some-user', :email => 'teste@teste.com')
  41 + email = UserMailer.ban_user_mail(@user).deliver
  42 + assert_match(/\[#{@user.environment}\] User Deactivated!/, email.subject)
45 43 end
46 44  
  45 + should 'deliver delete email notify' do
  46 + assert_difference 'ActionMailer::Base.deliveries.size' do
  47 + UserMailer.delete_user_mail(@user).deliver
  48 + end
  49 + end
  50 +
  51 + should 'verify delete email notification' do
  52 + email = UserMailer.delete_user_mail(@user).deliver
  53 + assert_match(/\[#{@user.environment}\] User Deleted!/, email.subject)
  54 + end
47 55 private
48 56  
49 57 def read_fixture(action)
... ...