From 12a8cc021cd89ef98f03cf9b4eea4c0b92d3cba6 Mon Sep 17 00:00:00 2001 From: Leandro Nunes dos Santos Date: Sun, 15 Mar 2015 13:49:46 -0300 Subject: [PATCH] display public content --- app/models/article.rb | 4 ++-- test/unit/article_test.rb | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/models/article.rb b/app/models/article.rb index b11703d..3e6e43f 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -488,12 +488,12 @@ class Article < ActiveRecord::Base scope :display_filter, lambda {|user, profile| return published if (user.nil? && profile && profile.public?) - return [] if user.nil? || profile.nil? || (!profile.public? && !user.follows?(profile)) + return [] if user.nil? || (profile && !profile.public? && !user.follows?(profile)) where( [ "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ? OR (show_to_followers = ? AND ?)", true, user.id, user.id, - user.has_permission?(:view_private_content, profile), + profile.nil? ? false : user.has_permission?(:view_private_content, profile), true, user.follows?(profile) ] ) diff --git a/test/unit/article_test.rb b/test/unit/article_test.rb index 5a9931f..b956dfc 100644 --- a/test/unit/article_test.rb +++ b/test/unit/article_test.rb @@ -2069,6 +2069,16 @@ class ArticleTest < ActiveSupport::TestCase assert_equal [], Article.display_filter(nil, p) end + should 'display_filter show public content for non members when profile is nil' do + user = create_user('someuser').person + p = fast_create(Community, :public_profile => true) + Article.delete_all + a1 = fast_create(Article, :published => true, :profile_id => user.id) + a2 = fast_create(Article, :published => true, :profile_id => p.id) + fast_create(Article, :published => false, :profile_id => p.id) + assert_equivalent [a1,a2], Article.display_filter(user, nil) + end + should 'display_filter show person public content of private person profile for user friends' do user = create_user('someuser').person p = fast_create(Person, :public_profile => false) @@ -2101,4 +2111,14 @@ class ArticleTest < ActiveSupport::TestCase assert_equal [], Article.display_filter(nil, p) end + should 'display_filter show public content for non friends when profile is nil' do + user = create_user('someuser').person + p = fast_create(Person, :public_profile => true) + Article.delete_all + a1 = fast_create(Article, :published => true, :profile_id => user.id) + a2 = fast_create(Article, :published => true, :profile_id => p.id) + fast_create(Article, :published => false, :profile_id => p.id) + assert_equivalent [a1,a2], Article.display_filter(user, nil) + end + end -- libgit2 0.21.2