From ba8799abffb5dde6e6c30d333782dabf42e07eb0 Mon Sep 17 00:00:00 2001 From: Gaspard Bucher Date: Thu, 17 Oct 2013 09:04:38 +0200 Subject: [PATCH] Using latest version of property to avoid error 500 in case of invalid properties. --- app/models/node.rb | 3 + config/gems.yml | 2 +- lib/zena/use/authlogic.rb | 5 +- test/unit/node_test.rb | 15 ++++ test/unit/zena/use/upload_test.rb | 5 +- zena.gemspec | 111 +++++++++++++++--------------- 6 files changed, 81 insertions(+), 60 deletions(-) diff --git a/app/models/node.rb b/app/models/node.rb index 906b57e8..61ba48ad 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -149,6 +149,9 @@ def safe_method_type(signature, receiver = nil) include Property::Serialization::JSON store_properties_in :version + + invalid_property_failover 'title' => 'INVALID PROPERTY', 'ext' => 'txt', 'content/type' => 'text/plain' + property do |p| # Multilingual string index on 'title' diff --git a/config/gems.yml b/config/gems.yml index 7b22747a..a7c3c8e2 100644 --- a/config/gems.yml +++ b/config/gems.yml @@ -22,7 +22,7 @@ querybuilder: '= 1.2.2' yamltest: '= 0.7.0' safe_yaml: '= 0.8.0' rubyless: '= 0.8.10' -property: '= 2.3.3' +property: '= 2.3.4' versions: '= 0.3.1' RedCloth: diff --git a/lib/zena/use/authlogic.rb b/lib/zena/use/authlogic.rb index 96d88d32..43d4c372 100644 --- a/lib/zena/use/authlogic.rb +++ b/lib/zena/use/authlogic.rb @@ -136,9 +136,10 @@ def force_authentication? def redirect_to_https if current_site.ssl_on_auth if !ssl_request? && !visitor.is_anon? && !local_request? - redirect_to({:protocol => 'https'}.merge(params), :flash => flash) + # Note that this does not work for PUT or DELETE verbs... + redirect_to(params.merge({:protocol => 'https'}), :flash => flash) elsif ssl_request? && visitor.is_anon? - redirect_to({:protocol => 'http'}.merge(params), :flash => flash) + redirect_to(params.merge({:protocol => 'http'}), :flash => flash) end end end diff --git a/test/unit/node_test.rb b/test/unit/node_test.rb index 556dc58a..adf57a94 100644 --- a/test/unit/node_test.rb +++ b/test/unit/node_test.rb @@ -1508,4 +1508,19 @@ def test_safe_send assert_equal nodes_zip(:status).to_s, node.safe_send("id") assert_equal nil, node.safe_send("object_id") end + + context 'a node with invalid properties' do + setup do + version = secure(Node) { nodes(:status) }.version + Zena::Db.set_attribute(version, 'properties', '{"foo":') + end + + subject do + secure(Node) { nodes(:status) } + end + + should 'return the failover property value' do + assert_equal 'INVALID PROPERTY', subject.title + end + end end \ No newline at end of file diff --git a/test/unit/zena/use/upload_test.rb b/test/unit/zena/use/upload_test.rb index 6b3a2032..310615cf 100644 --- a/test/unit/zena/use/upload_test.rb +++ b/test/unit/zena/use/upload_test.rb @@ -20,13 +20,14 @@ class UploadTest < Zena::View::TestCase context 'to a file too large' do setup do - @params = {'attachment_url' => "http://apod.nasa.gov/apod/image/0901/gcenter_hstspitzer_big.jpg"} + #@params = {'attachment_url' => 'http://apod.nasa.gov/apod/image/0901/gcenter_hstspitzer_big.jpg'} + @params = {'attachment_url' => 'http://upload.wikimedia.org/wikipedia/commons/f/f4/360-degree_Panorama_of_the_Southern_Sky.jpg'} end should 'return an error about file being too big, without a download' do file, error = get_attachment assert_nil file - assert_equal 'size (10.9 MB) too big to fetch url', error + assert_equal 'size (18 MB) too big to fetch url', error end end diff --git a/zena.gemspec b/zena.gemspec index 8d59c634..083ab129 100644 --- a/zena.gemspec +++ b/zena.gemspec @@ -9,7 +9,7 @@ Gem::Specification.new do |s| s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Gaspard Bucher"] - s.date = %q{2013-09-03} + s.date = %q{2013-10-17} s.default_executable = %q{zena} s.description = %q{zena is a Ruby on Rails CMS (content managment system) with a focus on usability, ease of customization and web 2.0 goodness (application like behaviour).} s.email = %q{gaspard@teti.ch} @@ -407,6 +407,7 @@ Gem::Specification.new do |s| "bricks/zena/zena/migrate/20130715171232_rename_orphan_and_root_in_site.rb", "bricks/zena/zena/migrate/20130829093753_add_versioned_flag_to_column.rb", "bricks/zena/zena/migrate/20130903084909_count_login_attempts.rb", + "bricks/zena/zena/migrate/20130903150356_longer_names_for_acl.rb", "config/boot.rb", "config/bricks.yml", "config/database_example.yml", @@ -2227,84 +2228,84 @@ Gem::Specification.new do |s| s.specification_version = 3 if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_runtime_dependency(%q, ["= 0.1.2"]) - s.add_runtime_dependency(%q, ["= 0.3.1"]) - s.add_runtime_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, ["= 3.0.4"]) - s.add_runtime_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, ["= 2.3.18"]) - s.add_runtime_dependency(%q, ["= 0.8.10"]) - s.add_runtime_dependency(%q, ["= 0.7.0"]) - s.add_runtime_dependency(%q, ["= 2.1.0"]) - s.add_runtime_dependency(%q, ["= 2.0.0"]) - s.add_runtime_dependency(%q, ["= 2.3.3"]) - s.add_runtime_dependency(%q, [">= 0"]) s.add_runtime_dependency(%q, ["= 1.0.3"]) + s.add_runtime_dependency(%q, ["= 0.7.0"]) + s.add_runtime_dependency(%q, [">= 0"]) + s.add_runtime_dependency(%q, ["= 0.1.2"]) + s.add_runtime_dependency(%q, ["= 1.2.2"]) s.add_runtime_dependency(%q, [">= 0"]) + s.add_runtime_dependency(%q, ["= 1.0.0"]) + s.add_runtime_dependency(%q, ["= 2.3.4"]) s.add_runtime_dependency(%q, ["= 0.8.0"]) - s.add_runtime_dependency(%q, ["~> 2.3.12"]) + s.add_runtime_dependency(%q, ["= 2.3.18"]) + s.add_runtime_dependency(%q, [">= 0"]) + s.add_runtime_dependency(%q, ["= 0.8.10"]) + s.add_runtime_dependency(%q, ["= 3.0.4"]) + s.add_runtime_dependency(%q, [">= 0"]) s.add_runtime_dependency(%q, ["= 2.1.9"]) - s.add_runtime_dependency(%q, ["= 1.2.2"]) - s.add_runtime_dependency(%q, ["~> 0.4.16"]) + s.add_runtime_dependency(%q, ["= 2.0.0"]) + s.add_runtime_dependency(%q, [">= 0"]) s.add_runtime_dependency(%q, ["= 0.3.8"]) s.add_runtime_dependency(%q, ["= 1.5.1"]) - s.add_runtime_dependency(%q, ["= 1.0.0"]) s.add_runtime_dependency(%q, ["= 2.10.3"]) - s.add_runtime_dependency(%q, [">= 0"]) + s.add_runtime_dependency(%q, ["~> 0.4.16"]) + s.add_runtime_dependency(%q, [">= 0"]) + s.add_runtime_dependency(%q, ["= 0.3.1"]) + s.add_runtime_dependency(%q, ["= 2.1.0"]) + s.add_runtime_dependency(%q, ["~> 2.3.12"]) else - s.add_dependency(%q, ["= 0.1.2"]) - s.add_dependency(%q, ["= 0.3.1"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["= 3.0.4"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["= 2.3.18"]) - s.add_dependency(%q, ["= 0.8.10"]) - s.add_dependency(%q, ["= 0.7.0"]) - s.add_dependency(%q, ["= 2.1.0"]) - s.add_dependency(%q, ["= 2.0.0"]) - s.add_dependency(%q, ["= 2.3.3"]) - s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, ["= 1.0.3"]) + s.add_dependency(%q, ["= 0.7.0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 0.1.2"]) + s.add_dependency(%q, ["= 1.2.2"]) s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 1.0.0"]) + s.add_dependency(%q, ["= 2.3.4"]) s.add_dependency(%q, ["= 0.8.0"]) - s.add_dependency(%q, ["~> 2.3.12"]) + s.add_dependency(%q, ["= 2.3.18"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 0.8.10"]) + s.add_dependency(%q, ["= 3.0.4"]) + s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, ["= 2.1.9"]) - s.add_dependency(%q, ["= 1.2.2"]) - s.add_dependency(%q, ["~> 0.4.16"]) + s.add_dependency(%q, ["= 2.0.0"]) + s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, ["= 0.3.8"]) s.add_dependency(%q, ["= 1.5.1"]) - s.add_dependency(%q, ["= 1.0.0"]) s.add_dependency(%q, ["= 2.10.3"]) - s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["~> 0.4.16"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 0.3.1"]) + s.add_dependency(%q, ["= 2.1.0"]) + s.add_dependency(%q, ["~> 2.3.12"]) end else - s.add_dependency(%q, ["= 0.1.2"]) - s.add_dependency(%q, ["= 0.3.1"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["= 3.0.4"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["= 2.3.18"]) - s.add_dependency(%q, ["= 0.8.10"]) - s.add_dependency(%q, ["= 0.7.0"]) - s.add_dependency(%q, ["= 2.1.0"]) - s.add_dependency(%q, ["= 2.0.0"]) - s.add_dependency(%q, ["= 2.3.3"]) - s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, ["= 1.0.3"]) + s.add_dependency(%q, ["= 0.7.0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 0.1.2"]) + s.add_dependency(%q, ["= 1.2.2"]) s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 1.0.0"]) + s.add_dependency(%q, ["= 2.3.4"]) s.add_dependency(%q, ["= 0.8.0"]) - s.add_dependency(%q, ["~> 2.3.12"]) + s.add_dependency(%q, ["= 2.3.18"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 0.8.10"]) + s.add_dependency(%q, ["= 3.0.4"]) + s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, ["= 2.1.9"]) - s.add_dependency(%q, ["= 1.2.2"]) - s.add_dependency(%q, ["~> 0.4.16"]) + s.add_dependency(%q, ["= 2.0.0"]) + s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, ["= 0.3.8"]) s.add_dependency(%q, ["= 1.5.1"]) - s.add_dependency(%q, ["= 1.0.0"]) s.add_dependency(%q, ["= 2.10.3"]) - s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["~> 0.4.16"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["= 0.3.1"]) + s.add_dependency(%q, ["= 2.1.0"]) + s.add_dependency(%q, ["~> 2.3.12"]) end end