Commit 71cf8bc1368261f02dd440cc016045baba883bb7

Authored by Leandro Santos
1 parent 0096a365

display_filter should return all public content if no profile is passed

app/models/article.rb
... ... @@ -498,13 +498,13 @@ class Article < ActiveRecord::Base
498 498  
499 499 scope :display_filter, lambda {|user, profile|
500 500 return published if (user.nil? && profile && profile.public?)
501   - return [] if user.nil? || profile.nil? || (profile && !profile.public? && !user.follows?(profile))
  501 + return [] if user.nil? || (profile && !profile.public? && !user.follows?(profile))
502 502 where(
503 503 [
504 504 "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ?
505 505 OR (show_to_followers = ? AND ? AND profile_id = ?)", true, user.id, user.id,
506 506 profile.nil? ? false : user.has_permission?(:view_private_content, profile),
507   - true, user.follows?(profile), profile.id
  507 + true, user.follows?(profile), (profile.nil? ? nil : profile.id)
508 508 ]
509 509 )
510 510 }
... ...
test/unit/article_test.rb
... ... @@ -2040,6 +2040,17 @@ class ArticleTest < ActiveSupport::TestCase
2040 2040 assert_equal [], Article.display_filter(user, nil)
2041 2041 end
2042 2042  
  2043 + should 'display_filter show person public content to non friends passing nil as profile parameter' do
  2044 + user = create_user('someuser').person
  2045 + p = fast_create(Person)
  2046 + assert !p.is_a_friend?(user)
  2047 + assert !user.is_admin?
  2048 + Article.delete_all
  2049 + a1 = fast_create(Article, :profile_id => p.id)
  2050 + a2 = fast_create(Article)
  2051 + assert_equivalent [a1,a2], Article.display_filter(user, nil)
  2052 + end
  2053 +
2043 2054 should 'display_filter do not show community private content to non members passing nil as profile parameter' do
2044 2055 user = create_user('someuser').person
2045 2056 p = fast_create(Community)
... ... @@ -2049,6 +2060,16 @@ class ArticleTest < ActiveSupport::TestCase
2049 2060 assert_equal [], Article.display_filter(user, nil)
2050 2061 end
2051 2062  
  2063 + should 'display_filter show community public content to non members passing nil as profile parameter' do
  2064 + user = create_user('someuser').person
  2065 + p = fast_create(Community)
  2066 + assert !user.is_member_of?(p)
  2067 + Article.delete_all
  2068 + a1 = fast_create(Article, :profile_id => p.id)
  2069 + a2 = fast_create(Article)
  2070 + assert_equivalent [a1,a2], Article.display_filter(user, nil)
  2071 + end
  2072 +
2052 2073 should 'display_filter show community public content of private community for user members' do
2053 2074 user = create_user('someuser').person
2054 2075 p = fast_create(Community, :public_profile => false)
... ...