Commit 12a8cc021cd89ef98f03cf9b4eea4c0b92d3cba6
1 parent
5d5380a7
Exists in
master
and in
27 other branches
display public content
Showing
2 changed files
with
22 additions
and
2 deletions
Show diff stats
app/models/article.rb
@@ -488,12 +488,12 @@ class Article < ActiveRecord::Base | @@ -488,12 +488,12 @@ class Article < ActiveRecord::Base | ||
488 | 488 | ||
489 | scope :display_filter, lambda {|user, profile| | 489 | scope :display_filter, lambda {|user, profile| |
490 | return published if (user.nil? && profile && profile.public?) | 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 | where( | 492 | where( |
493 | [ | 493 | [ |
494 | "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ? | 494 | "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ? |
495 | OR (show_to_followers = ? AND ?)", true, user.id, user.id, | 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 | true, user.follows?(profile) | 497 | true, user.follows?(profile) |
498 | ] | 498 | ] |
499 | ) | 499 | ) |
test/unit/article_test.rb
@@ -2069,6 +2069,16 @@ class ArticleTest < ActiveSupport::TestCase | @@ -2069,6 +2069,16 @@ class ArticleTest < ActiveSupport::TestCase | ||
2069 | assert_equal [], Article.display_filter(nil, p) | 2069 | assert_equal [], Article.display_filter(nil, p) |
2070 | end | 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 | should 'display_filter show person public content of private person profile for user friends' do | 2082 | should 'display_filter show person public content of private person profile for user friends' do |
2073 | user = create_user('someuser').person | 2083 | user = create_user('someuser').person |
2074 | p = fast_create(Person, :public_profile => false) | 2084 | p = fast_create(Person, :public_profile => false) |
@@ -2101,4 +2111,14 @@ class ArticleTest < ActiveSupport::TestCase | @@ -2101,4 +2111,14 @@ class ArticleTest < ActiveSupport::TestCase | ||
2101 | assert_equal [], Article.display_filter(nil, p) | 2111 | assert_equal [], Article.display_filter(nil, p) |
2102 | end | 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 | end | 2124 | end |