diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-05-31 09:43:55 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-05-31 09:43:55 -0700 |
commit | da048de773cea8a970768f04cecd0b3dbb015772 (patch) | |
tree | 013621b9f50005f40402acc0080d8139f167e48b /actionpack/lib/action_controller | |
parent | 67b94799c27cc3214017627aede759c5c5a39189 (diff) | |
parent | 4791822368bf0b1238a096c353cd408c6f1fe8c4 (diff) | |
download | rails-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.rb | 22 |
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 |