Commit caf5954c86a60963bddeb41a0ed5ff324ebb6dad
1 parent
12ab2e97
Exists in
staging
and in
32 other branches
Change visibility to admins
- Admins now can be see secret profiles - Secret profiles are hachured in searches - closes #176 Signed-off-by: Artur Bersan de Faria <arturbersan@gmail.com> Signed-off-by: Thiago Ribeiro <thiagitosouza@gmail.com> Signed-off-by: Sabryna Sousa <sabryna.sousa1323@gmail.com>
Showing
5 changed files
with
41 additions
and
4 deletions
Show diff stats
app/controllers/public/search_controller.rb
| @@ -244,7 +244,11 @@ class SearchController < PublicController | @@ -244,7 +244,11 @@ class SearchController < PublicController | ||
| 244 | def visible_profiles(klass, *extra_relations) | 244 | def visible_profiles(klass, *extra_relations) |
| 245 | relations = [:image, :domains, :environment, :preferred_domain] | 245 | relations = [:image, :domains, :environment, :preferred_domain] |
| 246 | relations += extra_relations | 246 | relations += extra_relations |
| 247 | - @environment.send(klass.name.underscore.pluralize).visible.includes(relations) | 247 | + if current_user && current_user.person.is_admin? |
| 248 | + @environment.send(klass.name.underscore.pluralize).includes(relations) | ||
| 249 | + else | ||
| 250 | + @environment.send(klass.name.underscore.pluralize).visible.includes(relations) | ||
| 251 | + end | ||
| 248 | end | 252 | end |
| 249 | 253 | ||
| 250 | def per_page | 254 | def per_page |
app/helpers/profile_image_helper.rb
| @@ -114,7 +114,12 @@ module ProfileImageHelper | @@ -114,7 +114,12 @@ module ProfileImageHelper | ||
| 114 | end | 114 | end |
| 115 | 115 | ||
| 116 | extra_info_tag = '' | 116 | extra_info_tag = '' |
| 117 | - img_class = 'profile-image' | 117 | + |
| 118 | + if profile.secret? | ||
| 119 | + img_class = 'profile-image secret-profile' | ||
| 120 | + else | ||
| 121 | + img_class = 'profile-image' | ||
| 122 | + end | ||
| 118 | 123 | ||
| 119 | if extra_info.is_a? Hash | 124 | if extra_info.is_a? Hash |
| 120 | extra_info_tag = content_tag( 'span', extra_info[:value], :class => 'extra_info '+extra_info[:class]) | 125 | extra_info_tag = content_tag( 'span', extra_info[:value], :class => 'extra_info '+extra_info[:class]) |
| @@ -137,4 +142,4 @@ module ProfileImageHelper | @@ -137,4 +142,4 @@ module ProfileImageHelper | ||
| 137 | :title => profile.name ), | 142 | :title => profile.name ), |
| 138 | :class => 'vcard'), :class => 'common-profile-list-block') | 143 | :class => 'vcard'), :class => 'common-profile-list-block') |
| 139 | end | 144 | end |
| 140 | -end | ||
| 141 | \ No newline at end of file | 145 | \ No newline at end of file |
| 146 | +end |
public/stylesheets/blocks/profile-list.scss
| @@ -83,6 +83,12 @@ | @@ -83,6 +83,12 @@ | ||
| 83 | vertical-align: middle; | 83 | vertical-align: middle; |
| 84 | height: 64px; | 84 | height: 64px; |
| 85 | } | 85 | } |
| 86 | +.common-profile-list-block .secret-profile { | ||
| 87 | + background: url(../images/hachure.png); | ||
| 88 | + opacity: 0.25; | ||
| 89 | + filter: alpha(opacity=5); | ||
| 90 | + zoom: 1; | ||
| 91 | +} | ||
| 86 | .common-profile-list-block img { | 92 | .common-profile-list-block img { |
| 87 | border: none; | 93 | border: none; |
| 88 | max-width: 50px; | 94 | max-width: 50px; |
test/functional/search_controller_test.rb
| @@ -541,6 +541,16 @@ class SearchControllerTest < ActionController::TestCase | @@ -541,6 +541,16 @@ class SearchControllerTest < ActionController::TestCase | ||
| 541 | assert_equal [c2,c1,c3] , assigns(:searches)[:communities][:results] | 541 | assert_equal [c2,c1,c3] , assigns(:searches)[:communities][:results] |
| 542 | end | 542 | end |
| 543 | 543 | ||
| 544 | + should "only admin can view invisible people" do | ||
| 545 | + # assuming that all filters behave the same! | ||
| 546 | + p1 = fast_create(Person, :visible => false) | ||
| 547 | + admin = create_user('admin').person; | ||
| 548 | + Environment.default.add_admin admin | ||
| 549 | + login_as("admin") | ||
| 550 | + get :people, :order => 'more_recent' | ||
| 551 | + assert_includes assigns(:searches)[:people][:results], p1 | ||
| 552 | + end | ||
| 553 | + | ||
| 544 | should "only include visible people in more_recent filter" do | 554 | should "only include visible people in more_recent filter" do |
| 545 | # assuming that all filters behave the same! | 555 | # assuming that all filters behave the same! |
| 546 | p1 = fast_create(Person, :visible => false) | 556 | p1 = fast_create(Person, :visible => false) |
test/unit/profile_image_helper_test.rb
| @@ -135,4 +135,16 @@ class ProfileImageHelperTest < ActionView::TestCase | @@ -135,4 +135,16 @@ class ProfileImageHelperTest < ActionView::TestCase | ||
| 135 | NOOSFERO_CONF.stubs(:[]).with('gravatar').returns('nicevatar') | 135 | NOOSFERO_CONF.stubs(:[]).with('gravatar').returns('nicevatar') |
| 136 | assert_equal gravatar_default, 'nicevatar' | 136 | assert_equal gravatar_default, 'nicevatar' |
| 137 | end | 137 | end |
| 138 | -end | ||
| 139 | \ No newline at end of file | 138 | \ No newline at end of file |
| 139 | + | ||
| 140 | + should "secret-profile css applied in the secret profile image" do | ||
| 141 | + @plugins = mock | ||
| 142 | + @plugins.stubs(:dispatch_first).returns(false) | ||
| 143 | + env = Environment.default | ||
| 144 | + stubs(:environment).returns(env) | ||
| 145 | + stubs(:profile).returns(profile) | ||
| 146 | + profile = fast_create(Community, :environment_id => env.id, :secret => true) | ||
| 147 | + info = {:value =>_('New'), :class => 'new-profile'} | ||
| 148 | + html = profile_image_link(profile, size=:portrait, tag='li', extra_info = info) | ||
| 149 | + assert_tag_in_string html, :tag => 'span', :attributes => { :class => 'profile-image secret-profile new-profile' } | ||
| 150 | + end | ||
| 151 | +end |