Commit 3683ac99adfd23ff592a3a630adca519347ea482
1 parent
adb43797
Exists in
master
and in
29 other branches
Honouring all URL options when sending e-mails.
This includes the port number, if for some reason a Noosfero instance is publicly available on another port then the HTTP default. Based on a patch from Josef Spillner.
Showing
2 changed files
with
8 additions
and
4 deletions
Show diff stats
app/models/task_mailer.rb
@@ -22,15 +22,15 @@ class TaskMailer < ActionMailer::Base | @@ -22,15 +22,15 @@ class TaskMailer < ActionMailer::Base | ||
22 | :target => task.target.name, | 22 | :target => task.target.name, |
23 | :message => msg, | 23 | :message => msg, |
24 | :environment => task.requestor.environment.name, | 24 | :environment => task.requestor.environment.name, |
25 | - :url => url_for(:host => task.requestor.environment.default_hostname, :controller => 'home'), | 25 | + :url => generate_environment_url(task, :controller => 'home'), |
26 | :tasks_url => url_for_tasks_list | 26 | :tasks_url => url_for_tasks_list |
27 | end | 27 | end |
28 | 28 | ||
29 | def invitation_notification(task) | 29 | def invitation_notification(task) |
30 | msg = task.message | 30 | msg = task.message |
31 | msg = msg.gsub(/<user>/, task.requestor.name) | 31 | msg = msg.gsub(/<user>/, task.requestor.name) |
32 | - msg = msg.gsub(/<friend>/, task.friend_name) | ||
33 | - msg = msg.gsub(/<url>/, url_for(:host => task.requestor.environment.default_hostname, :controller => 'account', :action => 'signup', :invitation_code => task.code)) | 32 | + msg = msg.gsub(/<friend>/, task.friend_name.blank? ? task.friend_email : task.friend_name) |
33 | + msg = msg.gsub(/<url>/, generate_environment_url(task, :controller => 'account', :action => 'signup', :invitation_code => task.code)) | ||
34 | 34 | ||
35 | recipients task.friend_email | 35 | recipients task.friend_email |
36 | 36 | ||
@@ -66,4 +66,8 @@ class TaskMailer < ActionMailer::Base | @@ -66,4 +66,8 @@ class TaskMailer < ActionMailer::Base | ||
66 | "#{task.requestor.environment.name} <#{task.requestor.environment.contact_email}>" | 66 | "#{task.requestor.environment.name} <#{task.requestor.environment.contact_email}>" |
67 | end | 67 | end |
68 | 68 | ||
69 | + def generate_environment_url(task, url = {}) | ||
70 | + url_for(Noosfero.url_options.merge(:host => task.requestor.environment.default_hostname).merge(url)) | ||
71 | + end | ||
72 | + | ||
69 | end | 73 | end |
test/unit/task_mailer_test.rb
@@ -113,7 +113,7 @@ class TaskMailerTest < Test::Unit::TestCase | @@ -113,7 +113,7 @@ class TaskMailerTest < Test::Unit::TestCase | ||
113 | 113 | ||
114 | task.expects(:message).returns('Hello <friend>, <user> invite you, please follow this link: <url>') | 114 | task.expects(:message).returns('Hello <friend>, <user> invite you, please follow this link: <url>') |
115 | task.expects(:friend_email).returns('friend@exemple.com') | 115 | task.expects(:friend_email).returns('friend@exemple.com') |
116 | - task.expects(:friend_name).returns('friend name') | 116 | + task.expects(:friend_name).returns('friend name').at_least_once |
117 | 117 | ||
118 | requestor = mock() | 118 | requestor = mock() |
119 | requestor.expects(:name).returns('my name') | 119 | requestor.expects(:name).returns('my name') |