FEATURE: show full name in emails

This commit is contained in:
Arpit Jalan 2014-10-21 19:36:55 +05:30
parent 10094a0bcd
commit 83068fab94
2 changed files with 31 additions and 8 deletions

View file

@ -126,7 +126,8 @@ class UserNotifications < ActionMailer::Base
send_notification_email(
title: post.topic.title,
post: post,
from_alias: post.user.username,
username: post.user.username,
from_alias: SiteSetting.enable_names ? post.user.name : post.user.username,
allow_reply_by_email: true,
use_site_subject: true,
add_re_to_subject: true,
@ -170,7 +171,11 @@ class UserNotifications < ActionMailer::Base
return unless @notification = opts[:notification]
return unless @post = opts[:post]
username = @notification.data_hash[:original_username]
user_name = @notification.data_hash[:original_username]
if @post && SiteSetting.enable_names
user_name = User.find_by(id: @post.user_id).name
end
notification_type = opts[:notification_type] || Notification.types[@notification.notification_type].to_s
return if user.mailing_list_mode && !@post.topic.private_message? &&
@ -185,7 +190,8 @@ class UserNotifications < ActionMailer::Base
send_notification_email(
title: title,
post: @post,
from_alias: username,
username: @notification.data_hash[:original_username],
from_alias: user_name,
allow_reply_by_email: allow_reply_by_email,
use_site_subject: use_site_subject,
add_re_to_subject: add_re_to_subject,
@ -202,6 +208,7 @@ class UserNotifications < ActionMailer::Base
allow_reply_by_email = opts[:allow_reply_by_email]
use_site_subject = opts[:use_site_subject]
add_re_to_subject = opts[:add_re_to_subject] && post.post_number > 1
username = opts[:username]
from_alias = opts[:from_alias]
notification_type = opts[:notification_type]
user = opts[:user]
@ -254,7 +261,7 @@ class UserNotifications < ActionMailer::Base
post_id: post.id,
topic_id: post.topic_id,
context: context,
username: from_alias,
username: username,
add_unsubscribe_link: true,
allow_reply_by_email: allow_reply_by_email,
use_site_subject: use_site_subject,

View file

@ -71,16 +71,21 @@ describe UserNotifications do
end
describe '.user_replied' do
let(:response_by_user) { Fabricate(:user, name: "John Doe") }
let(:category) { Fabricate(:category, name: 'India') }
let(:topic) { Fabricate(:topic, category: category) }
let(:post) { Fabricate(:post, topic: topic) }
let(:response) { Fabricate(:post, topic: post.topic)}
let(:response) { Fabricate(:post, topic: post.topic, user: response_by_user)}
let(:user) { Fabricate(:user) }
let(:notification) { Fabricate(:notification, user: user) }
it 'generates a correct email' do
SiteSetting.stubs(:enable_names).returns(true)
mail = UserNotifications.user_replied(response.user, post: response, notification: notification)
# from should include full user name
expect(mail[:from].display_names).to eql(['John Doe'])
# subject should include category name
expect(mail.subject).to match(/India/)
@ -109,14 +114,19 @@ describe UserNotifications do
end
describe '.user_posted' do
let(:response_by_user) { Fabricate(:user, name: "John Doe") }
let(:post) { Fabricate(:post) }
let(:response) { Fabricate(:post, topic: post.topic)}
let(:response) { Fabricate(:post, topic: post.topic, user: response_by_user)}
let(:user) { Fabricate(:user) }
let(:notification) { Fabricate(:notification, user: user) }
it 'generates a correct email' do
SiteSetting.stubs(:enable_names).returns(false)
mail = UserNotifications.user_posted(response.user, post: response, notification: notification)
# from should not include full user name if "show user full names" is disabled
expect(mail[:from].display_names).to_not eql(['John Doe'])
# subject should not include category name
expect(mail.subject).not_to match(/Uncategorized/)
@ -133,14 +143,19 @@ describe UserNotifications do
end
describe '.user_private_message' do
let(:response_by_user) { Fabricate(:user, name: "John Doe") }
let(:topic) { Fabricate(:private_message_topic) }
let(:response) { Fabricate(:post, topic: topic)}
let(:response) { Fabricate(:post, topic: topic, user: response_by_user)}
let(:user) { Fabricate(:user) }
let(:notification) { Fabricate(:notification, user: user) }
it 'generates a correct email' do
SiteSetting.stubs(:enable_names).returns(true)
mail = UserNotifications.user_private_message(response.user, post: response, notification: notification)
# from should include full user name
expect(mail[:from].display_names).to eql(['John Doe'])
# subject should include "[PM]"
expect(mail.subject).to match("[PM]")
@ -224,7 +239,8 @@ describe UserNotifications do
end
it "has a from alias" do
expects_build_with(has_entry(:from_alias, "#{username}"))
SiteSetting.stubs(:enable_names).returns(true)
expects_build_with(has_entry(:from_alias, "#{user.name}"))
end
it "should explain how to respond" do