aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorWojciech Wnętrzak <w.wnetrzak@gmail.com>2015-07-15 21:04:21 +0200
committerWojciech Wnętrzak <w.wnetrzak@gmail.com>2015-09-17 15:57:09 +0200
commit472358d0307c09e2d20f68cae60ddc46248cad08 (patch)
tree140b3cce9856c19ddb862bb36506073c8551ea33 /railties
parent1ebd987aeba95ee65fc2647581fb87fed55a0a23 (diff)
downloadrails-472358d0307c09e2d20f68cae60ddc46248cad08.tar.gz
rails-472358d0307c09e2d20f68cae60ddc46248cad08.tar.bz2
rails-472358d0307c09e2d20f68cae60ddc46248cad08.zip
Fix displaying mailer previews on non local requests.
When config `action_mailer.show_previews` is set, previews are displayed regardless of local request check.
Diffstat (limited to 'railties')
-rw-r--r--railties/CHANGELOG.md5
-rw-r--r--railties/lib/rails/mailers_controller.rb6
-rw-r--r--railties/test/application/mailer_previews_test.rb2
3 files changed, 11 insertions, 2 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index faf6846e4b..f007d11c72 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,3 +1,8 @@
+* Fix displaying mailer previews on non local requests when config
+ `action_mailer.show_previews` is set
+
+ *Wojciech Wnętrzak*
+
* `rails server` will now honour the `PORT` environment variable
*David Cornu*
diff --git a/railties/lib/rails/mailers_controller.rb b/railties/lib/rails/mailers_controller.rb
index 78a857e0f1..ed0ea9dd4d 100644
--- a/railties/lib/rails/mailers_controller.rb
+++ b/railties/lib/rails/mailers_controller.rb
@@ -3,7 +3,7 @@ require 'rails/application_controller'
class Rails::MailersController < Rails::ApplicationController # :nodoc:
prepend_view_path ActionDispatch::DebugExceptions::RESCUES_TEMPLATE_PATH
- before_action :require_local!
+ before_action :require_local!, unless: :show_previews?
before_action :find_preview, only: :preview
def index
@@ -41,6 +41,10 @@ class Rails::MailersController < Rails::ApplicationController # :nodoc:
end
protected
+ def show_previews?
+ ActionMailer::Base.show_previews
+ end
+
def find_preview
candidates = []
params[:path].to_s.scan(%r{/|$}){ candidates << $` }
diff --git a/railties/test/application/mailer_previews_test.rb b/railties/test/application/mailer_previews_test.rb
index e462d2c15e..643d876a26 100644
--- a/railties/test/application/mailer_previews_test.rb
+++ b/railties/test/application/mailer_previews_test.rb
@@ -31,7 +31,7 @@ module ApplicationTests
test "/rails/mailers is accessible with correct configuraiton" do
add_to_config "config.action_mailer.show_previews = true"
app("production")
- get "/rails/mailers"
+ get "/rails/mailers", {}, {"REMOTE_ADDR" => "4.2.42.42"}
assert_equal 200, last_response.status
end