Skip to content

Commit

Permalink
Using latest version of property to avoid error 500 in case of invali…
Browse files Browse the repository at this point in the history
…d properties.
  • Loading branch information
gaspard committed Oct 17, 2013
1 parent de88e14 commit ba8799a
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 60 deletions.
3 changes: 3 additions & 0 deletions app/models/node.rb
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion config/gems.yml
Expand Up @@ -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:
Expand Down
5 changes: 3 additions & 2 deletions lib/zena/use/authlogic.rb
Expand Up @@ -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
Expand Down
15 changes: 15 additions & 0 deletions test/unit/node_test.rb
Expand Up @@ -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
5 changes: 3 additions & 2 deletions test/unit/zena/use/upload_test.rb
Expand Up @@ -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

Expand Down
111 changes: 56 additions & 55 deletions zena.gemspec
Expand Up @@ -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}
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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<differ>, ["= 0.1.2"])
s.add_runtime_dependency(%q<versions>, ["= 0.3.1"])
s.add_runtime_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_runtime_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_runtime_dependency(%q<gem_plugin>, [">= 0"])
s.add_runtime_dependency(%q<hpricot>, [">= 0"])
s.add_runtime_dependency(%q<rails>, ["= 2.3.18"])
s.add_runtime_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_runtime_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_runtime_dependency(%q<gettext>, ["= 2.1.0"])
s.add_runtime_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_runtime_dependency(%q<property>, ["= 2.3.3"])
s.add_runtime_dependency(%q<tzinfo>, [">= 0"])
s.add_runtime_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
s.add_runtime_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_runtime_dependency(%q<daemons>, [">= 0"])
s.add_runtime_dependency(%q<differ>, ["= 0.1.2"])
s.add_runtime_dependency(%q<querybuilder>, ["= 1.2.2"])
s.add_runtime_dependency(%q<open4>, [">= 0"])
s.add_runtime_dependency(%q<syntax>, ["= 1.0.0"])
s.add_runtime_dependency(%q<property>, ["= 2.3.4"])
s.add_runtime_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_runtime_dependency(%q<will_paginate>, ["~> 2.3.12"])
s.add_runtime_dependency(%q<rails>, ["= 2.3.18"])
s.add_runtime_dependency(%q<hpricot>, [">= 0"])
s.add_runtime_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_runtime_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_runtime_dependency(%q<gem_plugin>, [">= 0"])
s.add_runtime_dependency(%q<authlogic>, ["= 2.1.9"])
s.add_runtime_dependency(%q<querybuilder>, ["= 1.2.2"])
s.add_runtime_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_runtime_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_runtime_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_runtime_dependency(%q<httmultiparty>, ["= 0.3.8"])
s.add_runtime_dependency(%q<json>, ["= 1.5.1"])
s.add_runtime_dependency(%q<syntax>, ["= 1.0.0"])
s.add_runtime_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_runtime_dependency(%q<daemons>, [">= 0"])
s.add_runtime_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_runtime_dependency(%q<tzinfo>, [">= 0"])
s.add_runtime_dependency(%q<versions>, ["= 0.3.1"])
s.add_runtime_dependency(%q<gettext>, ["= 2.1.0"])
s.add_runtime_dependency(%q<will_paginate>, ["~> 2.3.12"])
else
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<versions>, ["= 0.3.1"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<property>, ["= 2.3.3"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
s.add_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<querybuilder>, ["= 1.2.2"])
s.add_dependency(%q<open4>, [">= 0"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<property>, ["= 2.3.4"])
s.add_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_dependency(%q<will_paginate>, ["~> 2.3.12"])
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<authlogic>, ["= 2.1.9"])
s.add_dependency(%q<querybuilder>, ["= 1.2.2"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<httmultiparty>, ["= 0.3.8"])
s.add_dependency(%q<json>, ["= 1.5.1"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<versions>, ["= 0.3.1"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<will_paginate>, ["~> 2.3.12"])
end
else
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<versions>, ["= 0.3.1"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<property>, ["= 2.3.3"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
s.add_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<querybuilder>, ["= 1.2.2"])
s.add_dependency(%q<open4>, [">= 0"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<property>, ["= 2.3.4"])
s.add_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_dependency(%q<will_paginate>, ["~> 2.3.12"])
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<authlogic>, ["= 2.1.9"])
s.add_dependency(%q<querybuilder>, ["= 1.2.2"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<httmultiparty>, ["= 0.3.8"])
s.add_dependency(%q<json>, ["= 1.5.1"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<versions>, ["= 0.3.1"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<will_paginate>, ["~> 2.3.12"])
end
end

0 comments on commit ba8799a

Please sign in to comment.