From 4e2c36f72e7913f3f17d2adccd0813e24b9166eb Mon Sep 17 00:00:00 2001 From: Larissa Reis Date: Fri, 10 Jan 2014 12:42:43 -0300 Subject: [PATCH] Filter out community members --- app/controllers/public/invite_controller.rb | 1 + test/functional/invite_controller_test.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 0 deletions(-) diff --git a/app/controllers/public/invite_controller.rb b/app/controllers/public/invite_controller.rb index 24e1a51..b5f71d5 100644 --- a/app/controllers/public/invite_controller.rb +++ b/app/controllers/public/invite_controller.rb @@ -81,6 +81,7 @@ class InviteController < PublicController fields = %w[name identifier email] + plugins_options.map {|field| field[:field].to_s } values = ["%#{params['q']}%"] * fields.count render :text => environment.people.find(:all, :joins => ['INNER JOIN users ON profiles.user_id=users.id'], :conditions => [fields.map {|field| "LOWER(#{field}) LIKE ?"}.join(' OR '), *values]). + select {|person| !profile.members.include?(person) }. map {|person| {:id => person.id, :name => person.name} }.to_json end diff --git a/test/functional/invite_controller_test.rb b/test/functional/invite_controller_test.rb index c21e906..5fbcc71 100644 --- a/test/functional/invite_controller_test.rb +++ b/test/functional/invite_controller_test.rb @@ -255,6 +255,20 @@ class InviteControllerTest < ActionController::TestCase assert_equal [{"name" => friend1.name, "id" => friend1.id}, {"name" => friend2.name, "id" => friend2.id}].to_json, @response.body end + should 'not include members in search friends profiles' do + community.add_admin(profile) + friend1 = create_user('willy').person + friend2 = create_user('william').person + friend1.save + friend2.save + + community.add_member(friend2) + + get :search_friend, :profile => community.identifier, :q => 'will' + + assert_equal [{"name" => friend1.name, "id" => friend1.id}].to_json, @response.body + end + should 'search friends profiles by fields provided by plugins' do class Plugin1 < Noosfero::Plugin def search_friend_fields -- libgit2 0.21.2