Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Revert all SSL changes

  • Loading branch information...
commit e8aaecdf5be31703e1356e24e4e4a99a1c59a8ff 1 parent 1650687
@nateberkopec nateberkopec authored
View
1  Gemfile
@@ -2,7 +2,6 @@ source 'http://rubygems.org'
gem 'json'
gem 'sqlite3'
-
# Gems used only for assets and not required
# in production environments by default.
group :assets do
View
1  core/app/controllers/spree/base_controller.rb
@@ -1,5 +1,4 @@
class Spree::BaseController < ActionController::Base
include SpreeBase
include SpreeRespondWith
- include ::SslRequirement
end
View
2  core/config/initializers/spree.rb
@@ -1,7 +1,5 @@
require 'mail'
-require 'ssl_requirement'
-
# Spree Configuration
SESSION_KEY = '_spree_session_id'
#require 'spree/support/core_ext/array/conversions'
View
5 core/lib/spree_base.rb
@@ -1,7 +1,5 @@
module SpreeBase
module InstanceMethods
-
-
def access_forbidden
render :text => 'Access Forbidden', :layout => true, :status => 401
end
@@ -123,8 +121,7 @@ def self.included(receiver)
receiver.send :helper_method, 'get_taxonomies'
receiver.send :helper_method, 'current_gateway'
receiver.send :helper_method, 'current_order'
+ receiver.send :include, SslRequirement
receiver.send :include, Spree::CurrentOrder
- receiver.send :include, ::SslRequirement
-
end
end
View
1  core/lib/spree_core.rb
@@ -53,6 +53,7 @@
require 'spree_core/spree_respond_with'
+require 'spree_core/ssl_requirement'
require 'spree_core/preferences/model_hooks'
require 'spree_core/preferences/preference_definition'
require 'store_helpers'
View
104 core/lib/spree_core/ssl_requirement.rb
@@ -0,0 +1,104 @@
+# ++
+# Copyright (c) 2007-2011, Rails Dog LLC and other contributors
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * Neither the name of the Rails Dog LLC nor the names of its
+# contributors may be used to endorse or promote products derived from this
+# software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# --
+
+# ++
+# Copyright (c) 2005 David Heinemeier Hansson
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+# --
+
+# Modified version of the ssl_requirement plugin by DHH
+module SslRequirement
+ extend ActiveSupport::Concern
+
+ included do
+ before_filter(:ensure_proper_protocol)
+ end
+
+ module ClassMethods
+ # Specifies that the named actions requires an SSL connection to be performed (which is enforced by ensure_proper_protocol).
+ def ssl_required(*actions)
+ write_inheritable_array(:ssl_required_actions, actions)
+ end
+
+ def ssl_allowed(*actions)
+ write_inheritable_array(:ssl_allowed_actions, actions)
+ end
+ end
+
+ protected
+ # Returns true if the current action is supposed to run as SSL
+ def ssl_required?
+ actions = self.class.read_inheritable_attribute(:ssl_required_actions)
+ return false if actions.nil?
+ actions.empty? || actions.include?(action_name.to_sym)
+ end
+
+ def ssl_allowed?
+ actions = self.class.read_inheritable_attribute(:ssl_allowed_actions)
+ return false if actions.nil?
+ actions.empty? || actions.include?(action_name.to_sym)
+ end
+
+ private
+
+ def ssl_supported?
+ return true if (Rails.env.development? or Rails.env.test?) and Spree::Config[:allow_ssl_in_development_and_test]
+ (Rails.env.staging? or Rails.env.production?) and Spree::Config[:allow_ssl_in_production]
+ end
+
+ def ensure_proper_protocol
+ return true if ssl_allowed?
+ if ssl_required? && !request.ssl? && ssl_supported?
+ redirect_to "https://" + request.host + request.fullpath
+ flash.keep
+ elsif request.ssl? && !ssl_required?
+ redirect_to "http://" + request.host + request.fullpath
+ flash.keep
+ end
+
+ end
+end
View
1  core/spree_core.gemspec
@@ -34,5 +34,4 @@ Gem::Specification.new do |s|
s.add_dependency 'rails'
s.add_dependency 'kaminari', '>= 0.12.4'
s.add_dependency 'deface', '>= 0.7.0'
- s.add_dependency 'bartt-ssl_requirement'
end
Please sign in to comment.
Something went wrong with that request. Please try again.