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