Commit 0999076c888067eed97a885dc8f70aa9f6568860

Authored by AntonioTerceiro
1 parent ae30560e

ActionItem443: not listing private communities in communities block

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2292 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/communities_block.rb
@@ -36,7 +36,7 @@ class CommunitiesBlock < ProfileListBlock @@ -36,7 +36,7 @@ class CommunitiesBlock < ProfileListBlock
36 def ids 36 def ids
37 # FIXME when owner is an environment (i.e. listing communities globally 37 # FIXME when owner is an environment (i.e. listing communities globally
38 # this can become SLOW) 38 # this can become SLOW)
39 - block.owner.communities.map(&:id) 39 + block.owner.communities.select(&:public_profile).map(&:id)
40 end 40 end
41 end 41 end
42 42
test/unit/communities_block_test.rb
@@ -27,9 +27,9 @@ class CommunitiesBlockTest < Test::Unit::TestCase @@ -27,9 +27,9 @@ class CommunitiesBlockTest < Test::Unit::TestCase
27 owner = mock 27 owner = mock
28 block.expects(:owner).returns(owner) 28 block.expects(:owner).returns(owner)
29 29
30 - member1 = mock; member1.stubs(:id).returns(1)  
31 - member2 = mock; member2.stubs(:id).returns(2)  
32 - member3 = mock; member3.stubs(:id).returns(3) 30 + member1 = mock; member1.stubs(:id).returns(1); member1.stubs(:public_profile).returns(true)
  31 + member2 = mock; member2.stubs(:id).returns(2); member2.stubs(:public_profile).returns(true)
  32 + member3 = mock; member3.stubs(:id).returns(3); member3.stubs(:public_profile).returns(true)
33 33
34 owner.expects(:communities).returns([member1, member2, member3]) 34 owner.expects(:communities).returns([member1, member2, member3])
35 35
@@ -71,4 +71,19 @@ class CommunitiesBlockTest < Test::Unit::TestCase @@ -71,4 +71,19 @@ class CommunitiesBlockTest < Test::Unit::TestCase
71 assert_equal '', block.footer 71 assert_equal '', block.footer
72 end 72 end
73 73
  74 + should 'not list non-public communities' do
  75 + user = create_user('testuser').person
  76 +
  77 + public_community = Community.create!(:name => 'test community 1', :identifier => 'comm1', :environment => Environment.default)
  78 + public_community.add_member(user)
  79 +
  80 + private_community = Community.create!(:name => 'test community 2', :identifier => 'comm2', :environment => Environment.default, :public_profile => false)
  81 + private_community.add_member(user)
  82 +
  83 + block = CommunitiesBlock.new
  84 + block.expects(:owner).returns(user)
  85 +
  86 + assert_equal [public_community], block.profiles
  87 + end
  88 +
74 end 89 end