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,11 +43,26 @@ class UserMailer &lt; ActionMailer::Base
43 43
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 + if reason.blank?
  47 + @reason = "No reason supplied"
  48 + else
  49 + @reason = reason
  50 + end
47 @deactivated_name = deactivated_profile.name 51 @deactivated_name = deactivated_profile.name
  52 + send_user_mail(user, subject)
48 end 53 end
49 54
50 def ban_user_mail(user) 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 @recipient = user.name 66 @recipient = user.name
52 @name = user.name 67 @name = user.name
53 @email = user.email 68 @email = user.email
app/models/person.rb
@@ -70,6 +70,7 @@ class Person &lt; Profile @@ -70,6 +70,7 @@ class Person &lt; Profile
70 70
71 after_destroy do |person| 71 after_destroy do |person|
72 Friendship.find(:all, :conditions => { :friend_id => person.id}).each { |friendship| friendship.destroy } 72 Friendship.find(:all, :conditions => { :friend_id => person.id}).each { |friendship| friendship.destroy }
  73 + UserMailer.delete_user_mail(self.user).deliver
73 end 74 end
74 75
75 belongs_to :user, :dependent => :delete 76 belongs_to :user, :dependent => :delete
app/views/user_mailer/delete_user_mail.html.erb 0 → 100644
@@ -0,0 +1,12 @@ @@ -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,17 +8,15 @@ class UserMailerTest &lt; ActiveSupport::TestCase
8 ActionMailer::Base.delivery_method = :test 8 ActionMailer::Base.delivery_method = :test
9 ActionMailer::Base.perform_deliveries = true 9 ActionMailer::Base.perform_deliveries = true
10 ActionMailer::Base.deliveries = [] 10 ActionMailer::Base.deliveries = []
11 - 11 + @user = create_user('some-user', :email => 'teste@teste.com')
12 end 12 end
13 13
14 should 'deliver activation email notify' do 14 should 'deliver activation email notify' do
15 assert_difference 'ActionMailer::Base.deliveries.size' do 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 end 17 end
19 end 18 end
20 19
21 -<<<<<<< HEAD  
22 should 'deliver deactivation email' do 20 should 'deliver deactivation email' do
23 assert_difference 'ActionMailer::Base.deliveries.size' do 21 assert_difference 'ActionMailer::Base.deliveries.size' do
24 u = create_user('some-user') 22 u = create_user('some-user')
@@ -33,17 +31,27 @@ class UserMailerTest &lt; ActiveSupport::TestCase @@ -33,17 +31,27 @@ class UserMailerTest &lt; ActiveSupport::TestCase
33 end 31 end
34 32
35 should 'deliver deactivation email notify' do 33 should 'deliver deactivation email notify' do
36 - user = create_user('some-user', :email => 'teste@teste.com')  
37 assert_difference 'ActionMailer::Base.deliveries.size' do 34 assert_difference 'ActionMailer::Base.deliveries.size' do
38 - UserMailer.ban_user_mail(user).deliver 35 + UserMailer.ban_user_mail(@user).deliver
39 end 36 end
40 end 37 end
41 38
42 should 'verify deactivation email notification' do 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 end 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 private 55 private
48 56
49 def read_fixture(action) 57 def read_fixture(action)