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 | 244 | def visible_profiles(klass, *extra_relations) |
245 | 245 | relations = [:image, :domains, :environment, :preferred_domain] |
246 | 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 | 252 | end |
249 | 253 | |
250 | 254 | def per_page | ... | ... |
app/helpers/profile_image_helper.rb
... | ... | @@ -114,7 +114,12 @@ module ProfileImageHelper |
114 | 114 | end |
115 | 115 | |
116 | 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 | 124 | if extra_info.is_a? Hash |
120 | 125 | extra_info_tag = content_tag( 'span', extra_info[:value], :class => 'extra_info '+extra_info[:class]) |
... | ... | @@ -137,4 +142,4 @@ module ProfileImageHelper |
137 | 142 | :title => profile.name ), |
138 | 143 | :class => 'vcard'), :class => 'common-profile-list-block') |
139 | 144 | end |
140 | -end | |
141 | 145 | \ No newline at end of file |
146 | +end | ... | ... |
public/stylesheets/blocks/profile-list.scss
... | ... | @@ -83,6 +83,12 @@ |
83 | 83 | vertical-align: middle; |
84 | 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 | 92 | .common-profile-list-block img { |
87 | 93 | border: none; |
88 | 94 | max-width: 50px; | ... | ... |
test/functional/search_controller_test.rb
... | ... | @@ -541,6 +541,16 @@ class SearchControllerTest < ActionController::TestCase |
541 | 541 | assert_equal [c2,c1,c3] , assigns(:searches)[:communities][:results] |
542 | 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 | 554 | should "only include visible people in more_recent filter" do |
545 | 555 | # assuming that all filters behave the same! |
546 | 556 | p1 = fast_create(Person, :visible => false) | ... | ... |
test/unit/profile_image_helper_test.rb
... | ... | @@ -135,4 +135,16 @@ class ProfileImageHelperTest < ActionView::TestCase |
135 | 135 | NOOSFERO_CONF.stubs(:[]).with('gravatar').returns('nicevatar') |
136 | 136 | assert_equal gravatar_default, 'nicevatar' |
137 | 137 | end |
138 | -end | |
139 | 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 | ... | ... |