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 36 def ids
37 37 # FIXME when owner is an environment (i.e. listing communities globally
38 38 # this can become SLOW)
39   - block.owner.communities.map(&:id)
  39 + block.owner.communities.select(&:public_profile).map(&:id)
40 40 end
41 41 end
42 42  
... ...
test/unit/communities_block_test.rb
... ... @@ -27,9 +27,9 @@ class CommunitiesBlockTest < Test::Unit::TestCase
27 27 owner = mock
28 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 34 owner.expects(:communities).returns([member1, member2, member3])
35 35  
... ... @@ -71,4 +71,19 @@ class CommunitiesBlockTest < Test::Unit::TestCase
71 71 assert_equal '', block.footer
72 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 89 end
... ...