[noosfero/noosfero][master] display_filter should return all public content if no profile is passed
Leandro Nunes
gitlab at gitlab.com
Tue May 19 15:08:37 BRT 2015
Leandro Nunes pushed to branch master at Noosfero / noosfero
Commits:
71cf8bc1 by Leandro Nunes dos Santos at 2015-05-19T15:07:51Z
display_filter should return all public content if no profile is passed
- - - - -
2 changed files:
- app/models/article.rb
- test/unit/article_test.rb
Changes:
=====================================
app/models/article.rb
=====================================
--- a/app/models/article.rb
+++ b/app/models/article.rb
@@ -498,13 +498,13 @@ 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 && !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 ? AND profile_id = ?)", true, user.id, user.id,
profile.nil? ? false : user.has_permission?(:view_private_content, profile),
- true, user.follows?(profile), profile.id
+ true, user.follows?(profile), (profile.nil? ? nil : profile.id)
]
)
}
=====================================
test/unit/article_test.rb
=====================================
--- a/test/unit/article_test.rb
+++ b/test/unit/article_test.rb
@@ -2040,6 +2040,17 @@ class ArticleTest < ActiveSupport::TestCase
assert_equal [], Article.display_filter(user, nil)
end
+ should 'display_filter show person public content to non friends passing nil as profile parameter' do
+ user = create_user('someuser').person
+ p = fast_create(Person)
+ assert !p.is_a_friend?(user)
+ assert !user.is_admin?
+ Article.delete_all
+ a1 = fast_create(Article, :profile_id => p.id)
+ a2 = fast_create(Article)
+ assert_equivalent [a1,a2], Article.display_filter(user, nil)
+ end
+
should 'display_filter do not show community private content to non members passing nil as profile parameter' do
user = create_user('someuser').person
p = fast_create(Community)
@@ -2049,6 +2060,16 @@ class ArticleTest < ActiveSupport::TestCase
assert_equal [], Article.display_filter(user, nil)
end
+ should 'display_filter show community public content to non members passing nil as profile parameter' do
+ user = create_user('someuser').person
+ p = fast_create(Community)
+ assert !user.is_member_of?(p)
+ Article.delete_all
+ a1 = fast_create(Article, :profile_id => p.id)
+ a2 = fast_create(Article)
+ assert_equivalent [a1,a2], Article.display_filter(user, nil)
+ end
+
should 'display_filter show community public content of private community for user members' do
user = create_user('someuser').person
p = fast_create(Community, :public_profile => false)
View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/71cf8bc1368261f02dd440cc016045baba883bb7
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150519/a1af6270/attachment-0001.html>
More information about the Noosfero-dev
mailing list