Commit 5c973f1e34693fcd880fd347e8093ffa443f0c09
Committed by
Luciano Prestes
1 parent
acff33fe
Exists in
merge_deactive_and_ban
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>
Showing
4 changed files
with
45 additions
and
9 deletions
Show diff stats
app/mailers/user_mailer.rb
@@ -43,11 +43,26 @@ class UserMailer < ActionMailer::Base | @@ -43,11 +43,26 @@ class UserMailer < 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 < Profile | @@ -70,6 +70,7 @@ class Person < 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 |
test/unit/user_mailer_test.rb
@@ -8,17 +8,15 @@ class UserMailerTest < ActiveSupport::TestCase | @@ -8,17 +8,15 @@ class UserMailerTest < 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 < ActiveSupport::TestCase | @@ -33,17 +31,27 @@ class UserMailerTest < 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) |