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 | 22 | :target => task.target.name, |
23 | 23 | :message => msg, |
24 | 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 | 26 | :tasks_url => url_for_tasks_list |
27 | 27 | end |
28 | 28 | |
29 | 29 | def invitation_notification(task) |
30 | 30 | msg = task.message |
31 | 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 | 35 | recipients task.friend_email |
36 | 36 | |
... | ... | @@ -66,4 +66,8 @@ class TaskMailer < ActionMailer::Base |
66 | 66 | "#{task.requestor.environment.name} <#{task.requestor.environment.contact_email}>" |
67 | 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 | 73 | end | ... | ... |
test/unit/task_mailer_test.rb
... | ... | @@ -113,7 +113,7 @@ class TaskMailerTest < Test::Unit::TestCase |
113 | 113 | |
114 | 114 | task.expects(:message).returns('Hello <friend>, <user> invite you, please follow this link: <url>') |
115 | 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 | 118 | requestor = mock() |
119 | 119 | requestor.expects(:name).returns('my name') | ... | ... |