Commit 3683ac99adfd23ff592a3a630adca519347ea482
1 parent
adb43797
Exists in
master
and in
22 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') | ... | ... |