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 | 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 | ... | ... |