aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-05-31 09:43:55 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-05-31 09:43:55 -0700
commitda048de773cea8a970768f04cecd0b3dbb015772 (patch)
tree013621b9f50005f40402acc0080d8139f167e48b /actionpack/lib/action_controller
parent67b94799c27cc3214017627aede759c5c5a39189 (diff)
parent4791822368bf0b1238a096c353cd408c6f1fe8c4 (diff)
downloadrails-da048de773cea8a970768f04cecd0b3dbb015772.tar.gz
rails-da048de773cea8a970768f04cecd0b3dbb015772.tar.bz2
rails-da048de773cea8a970768f04cecd0b3dbb015772.zip
Merge pull request #6571 from jeremyf/extract-force-ssl-filter-logic-to-separate-method
Extracted redirect logic from ActionController::Force::ClassMethods.forc...
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r--actionpack/lib/action_controller/metal/force_ssl.rb22
1 files changed, 15 insertions, 7 deletions
diff --git a/actionpack/lib/action_controller/metal/force_ssl.rb b/actionpack/lib/action_controller/metal/force_ssl.rb
index ac12cbb625..77d799a38a 100644
--- a/actionpack/lib/action_controller/metal/force_ssl.rb
+++ b/actionpack/lib/action_controller/metal/force_ssl.rb
@@ -40,15 +40,23 @@ module ActionController
def force_ssl(options = {})
host = options.delete(:host)
before_filter(options) do
- unless request.ssl?
- redirect_options = {:protocol => 'https://', :status => :moved_permanently}
- redirect_options.merge!(:host => host) if host
- redirect_options.merge!(:params => request.query_parameters)
- flash.keep if respond_to?(:flash)
- redirect_to redirect_options
- end
+ force_ssl_redirect(host)
end
end
end
+
+ # Redirect the existing request to use the HTTPS protocol.
+ #
+ # ==== Parameters
+ # * <tt>host</tt> - Redirect to a different host name
+ def force_ssl_redirect(host = nil)
+ unless request.ssl?
+ redirect_options = {:protocol => 'https://', :status => :moved_permanently}
+ redirect_options.merge!(:host => host) if host
+ redirect_options.merge!(:params => request.query_parameters)
+ flash.keep if respond_to?(:flash)
+ redirect_to redirect_options
+ end
+ end
end
end