Commit 12a8cc021cd89ef98f03cf9b4eea4c0b92d3cba6

Authored by Leandro Santos
1 parent 5d5380a7

display public content

app/models/article.rb
... ... @@ -488,12 +488,12 @@ class Article < ActiveRecord::Base
488 488  
489 489 scope :display_filter, lambda {|user, profile|
490 490 return published if (user.nil? && profile && profile.public?)
491   - return [] if user.nil? || profile.nil? || (!profile.public? && !user.follows?(profile))
  491 + return [] if user.nil? || (profile && !profile.public? && !user.follows?(profile))
492 492 where(
493 493 [
494 494 "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ?
495 495 OR (show_to_followers = ? AND ?)", true, user.id, user.id,
496   - user.has_permission?(:view_private_content, profile),
  496 + profile.nil? ? false : user.has_permission?(:view_private_content, profile),
497 497 true, user.follows?(profile)
498 498 ]
499 499 )
... ...
test/unit/article_test.rb
... ... @@ -2069,6 +2069,16 @@ class ArticleTest < ActiveSupport::TestCase
2069 2069 assert_equal [], Article.display_filter(nil, p)
2070 2070 end
2071 2071  
  2072 + should 'display_filter show public content for non members when profile is nil' do
  2073 + user = create_user('someuser').person
  2074 + p = fast_create(Community, :public_profile => true)
  2075 + Article.delete_all
  2076 + a1 = fast_create(Article, :published => true, :profile_id => user.id)
  2077 + a2 = fast_create(Article, :published => true, :profile_id => p.id)
  2078 + fast_create(Article, :published => false, :profile_id => p.id)
  2079 + assert_equivalent [a1,a2], Article.display_filter(user, nil)
  2080 + end
  2081 +
2072 2082 should 'display_filter show person public content of private person profile for user friends' do
2073 2083 user = create_user('someuser').person
2074 2084 p = fast_create(Person, :public_profile => false)
... ... @@ -2101,4 +2111,14 @@ class ArticleTest < ActiveSupport::TestCase
2101 2111 assert_equal [], Article.display_filter(nil, p)
2102 2112 end
2103 2113  
  2114 + should 'display_filter show public content for non friends when profile is nil' do
  2115 + user = create_user('someuser').person
  2116 + p = fast_create(Person, :public_profile => true)
  2117 + Article.delete_all
  2118 + a1 = fast_create(Article, :published => true, :profile_id => user.id)
  2119 + a2 = fast_create(Article, :published => true, :profile_id => p.id)
  2120 + fast_create(Article, :published => false, :profile_id => p.id)
  2121 + assert_equivalent [a1,a2], Article.display_filter(user, nil)
  2122 + end
  2123 +
2104 2124 end
... ...