Commit 71cf8bc1368261f02dd440cc016045baba883bb7
1 parent
0096a365
Exists in
master
and in
26 other branches
display_filter should return all public content if no profile is passed
Showing
2 changed files
with
23 additions
and
2 deletions
Show diff stats
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) | ... | ... |