noosfero | 2 new commits pushed to repository

Antonio Terceiro gitlab at gitlab.com
Mon Jan 26 15:06:55 BRST 2015


Antonio Terceiro pushed to refs/heads/master at <a href="https://gitlab.com/noosfero/noosfero">Noosfero / noosfero</a>

Commits:
<a href="https://gitlab.com/noosfero/noosfero/commit/41af608f407597509b041efc3caef6604a26e386">41af608f</a> by Luciano
Add privacy of block only to members in organizations and only to friends in person.

Signed-off-by: Álvaro Fernando <alvarofernandoms at gmail.com>
Signed-off-by: Arthur Del Esposte <arthurmde at gmail.com>
Signed-off-by: Gabriela Navarro <navarro1703 at gmail.com>
Signed-off-by: Hebert Douglas <hebertdougl at gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr at gmail.com>

- - - - -
<a href="https://gitlab.com/noosfero/noosfero/commit/a6aca8e122e9b8af60d5262591a9b41ccd2a3de4">a6aca8e1</a> by Antonio Terceiro
Merge branch 'block_permission' into 'master'

Block permission

Add privacy of block only to members in a community
Add privacy of block only to friends in person.
The privacies were added in the block edition.

See merge request !418

- - - - -


Changes:

=====================================
app/models/block.rb
=====================================
--- a/app/models/block.rb
+++ b/app/models/block.rb
@@ -64,7 +64,7 @@ class Block < ActiveRecord::Base
   end
 
   def display_to_user?(user)
-    display_user == 'all' || (user.nil? && display_user == 'not_logged') || (user && display_user == 'logged')
+    display_user == 'all' || (user.nil? && display_user == 'not_logged') || (user && display_user == 'logged') || (user && display_user == 'followers' && user.follows?(owner))
   end
 
   def display_always(context)
@@ -224,6 +224,7 @@ class Block < ActiveRecord::Base
       'all'            => _('All users'),
       'logged'         => _('Logged'),
       'not_logged'     => _('Not logged'),
+      'followers'      => owner.organization? ? _('Members') : _('Friends')
     }
   end
 

=====================================
test/unit/block_test.rb
=====================================
--- a/test/unit/block_test.rb
+++ b/test/unit/block_test.rb
@@ -284,4 +284,50 @@ class BlockTest < ActiveSupport::TestCase
     assert_equal block.cache_key('en'), block.cache_key('en', person)
   end
 
+  should 'display block to members of community for display_user = members' do
+    community = fast_create(Community)
+    user = create_user('testinguser')
+    community.add_member(user.person)
+
+    box = fast_create(Box, :owner_id => community.id, :owner_type => 'Community')
+    block = create(Block, :box_id => box.id)
+    block.display_user = 'followers'
+    block.save!
+    assert block.display_to_user?(user.person)
+  end
+
+  should 'do not display block to non members of community for display_user = members' do
+    community = fast_create(Community)
+    user = create_user('testinguser')
+
+    box = fast_create(Box, :owner_id => community.id, :owner_type => 'Community')
+    block = create(Block, :box_id => box.id)
+    block.display_user = 'followers'
+    block.save!
+    assert !block.display_to_user?(user.person)
+  end
+
+  should 'display block to friends of person for display_user = friends' do
+    person = create_user('person_one').person
+    person_friend = create_user('person_friend').person
+
+    person.add_friend(person_friend)
+
+    box = fast_create(Box, :owner_id => person.id, :owner_type => 'Person')
+    block = create(Block, :box_id => box.id)
+    block.display_user = 'followers'
+    block.save!
+    assert block.display_to_user?(person_friend)
+  end
+
+  should 'do not display block to non friends of person for display_user = friends' do
+    person = create_user('person_one').person
+    person_friend = create_user('person_friend').person
+
+    box = fast_create(Box, :owner_id => person.id, :owner_type => 'Person')
+    block = create(Block, :box_id => box.id)
+    block.display_user = 'followers'
+    block.save!
+    assert !block.display_to_user?(person_friend)
+  end
 end

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150126/31621dbb/attachment.html>


More information about the Noosfero-dev mailing list