Commit 972acdcb85dfb38c088e75f089b5df6c7682878b
1 parent
c1d3f1a0
Exists in
master
and in
29 other branches
ActionItem680: being able to disable ssl
To disable SSL, just set disable_ssl = true in the environment. Like this: Environment.default.update_attributes(:disable_ssl => true) git-svn-id: https://svn.colivre.coop.br/svn/noosfero/branches/0.11.x@2511 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
5 changed files
with
34 additions
and
7 deletions
Show diff stats
app/controllers/application.rb
app/models/environment.rb
... | ... | @@ -283,6 +283,14 @@ class Environment < ActiveRecord::Base |
283 | 283 | result |
284 | 284 | end |
285 | 285 | |
286 | + def disable_ssl | |
287 | + settings[:disable_ssl] | |
288 | + end | |
289 | + | |
290 | + def disable_ssl=(value) | |
291 | + settings[:disable_ssl] = value | |
292 | + end | |
293 | + | |
286 | 294 | def to_s |
287 | 295 | self.name || '?' |
288 | 296 | end | ... | ... |
db/schema.rb
... | ... | @@ -77,8 +77,8 @@ ActiveRecord::Schema.define(:version => 55) do |
77 | 77 | t.boolean "virtual", :default => false |
78 | 78 | end |
79 | 79 | |
80 | - add_index "articles_categories", ["category_id"], :name => "index_articles_categories_on_category_id" | |
81 | 80 | add_index "articles_categories", ["article_id"], :name => "index_articles_categories_on_article_id" |
81 | + add_index "articles_categories", ["category_id"], :name => "index_articles_categories_on_category_id" | |
82 | 82 | |
83 | 83 | create_table "blocks", :force => true do |t| |
84 | 84 | t.string "title" |
... | ... | @@ -118,8 +118,8 @@ ActiveRecord::Schema.define(:version => 55) do |
118 | 118 | t.boolean "virtual", :default => false |
119 | 119 | end |
120 | 120 | |
121 | - add_index "categories_profiles", ["category_id"], :name => "index_categories_profiles_on_category_id" | |
122 | 121 | add_index "categories_profiles", ["profile_id"], :name => "index_categories_profiles_on_profile_id" |
122 | + add_index "categories_profiles", ["category_id"], :name => "index_categories_profiles_on_category_id" | |
123 | 123 | |
124 | 124 | create_table "comments", :force => true do |t| |
125 | 125 | t.string "title" |
... | ... | @@ -186,8 +186,8 @@ ActiveRecord::Schema.define(:version => 55) do |
186 | 186 | t.datetime "updated_at" |
187 | 187 | end |
188 | 188 | |
189 | - add_index "product_categorizations", ["category_id"], :name => "index_product_categorizations_on_category_id" | |
190 | 189 | add_index "product_categorizations", ["product_id"], :name => "index_product_categorizations_on_product_id" |
190 | + add_index "product_categorizations", ["category_id"], :name => "index_product_categorizations_on_category_id" | |
191 | 191 | |
192 | 192 | create_table "products", :force => true do |t| |
193 | 193 | t.integer "enterprise_id" |
... | ... | @@ -258,8 +258,8 @@ ActiveRecord::Schema.define(:version => 55) do |
258 | 258 | t.datetime "created_at" |
259 | 259 | end |
260 | 260 | |
261 | - add_index "taggings", ["taggable_id", "taggable_type"], :name => "index_taggings_on_taggable_id_and_taggable_type" | |
262 | 261 | add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" |
262 | + add_index "taggings", ["taggable_id", "taggable_type"], :name => "index_taggings_on_taggable_id_and_taggable_type" | |
263 | 263 | |
264 | 264 | create_table "tags", :force => true do |t| |
265 | 265 | t.string "name" | ... | ... |
test/functional/application_controller_test.rb
... | ... | @@ -292,9 +292,17 @@ class ApplicationControllerTest < Test::Unit::TestCase |
292 | 292 | end |
293 | 293 | |
294 | 294 | should 'add https protocols on redirect_to_ssl' do |
295 | - @controller.expects(:params).returns(:x => '1', :y => '1') | |
296 | - @controller.expects(:redirect_to).with(:x => '1', :y => '1', :protocol => 'https://') | |
297 | - @controller.redirect_to_ssl | |
295 | + get :sslonly, :x => '1', :y => '1' | |
296 | + assert_redirected_to :x => '1', :y => '1', :protocol => 'https://' | |
297 | + end | |
298 | + | |
299 | + should 'not force ssl when ssl is disabled' do | |
300 | + env = Environment.default | |
301 | + env.expects(:disable_ssl).returns(true) | |
302 | + @controller.stubs(:environment).returns(env) | |
303 | + @request.expects(:ssl?).returns(false).at_least_once | |
304 | + get :sslonly | |
305 | + assert_response :success | |
298 | 306 | end |
299 | 307 | |
300 | 308 | end | ... | ... |
test/unit/environment_test.rb
... | ... | @@ -409,4 +409,14 @@ class EnvironmentTest < Test::Unit::TestCase |
409 | 409 | assert !e.person_template.public? |
410 | 410 | end |
411 | 411 | |
412 | + should 'not disable ssl by default' do | |
413 | + e = Environment.new | |
414 | + assert !e.disable_ssl | |
415 | + end | |
416 | + | |
417 | + should 'be able to disable ssl' do | |
418 | + e = Environment.new(:disable_ssl => true) | |
419 | + assert_equal true, e.disable_ssl | |
420 | + end | |
421 | + | |
412 | 422 | end | ... | ... |