From c9d279cd75945726dc74d0a1285b07d7f88cd1a7 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Mon, 4 Nov 2013 19:17:49 +0000 Subject: [PATCH] stoa-person-api: not provide information of private articles tags --- plugins/stoa/lib/stoa_plugin/person_api.rb | 2 +- plugins/stoa/test/unit/person_api_test.rb | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/plugins/stoa/lib/stoa_plugin/person_api.rb b/plugins/stoa/lib/stoa_plugin/person_api.rb index bb0186f..0d2413e 100644 --- a/plugins/stoa/lib/stoa_plugin/person_api.rb +++ b/plugins/stoa/lib/stoa_plugin/person_api.rb @@ -24,7 +24,7 @@ class StoaPlugin::PersonApi < Noosfero::FieldsDecorator end def tags - articles.tag_counts({:order => 'tags.count desc', :limit => 10}).inject({}) do |memo,tag| + articles.published.tag_counts({:order => 'tags.count desc', :limit => 10}).inject({}) do |memo,tag| memo[tag.name] = tag.count memo end diff --git a/plugins/stoa/test/unit/person_api_test.rb b/plugins/stoa/test/unit/person_api_test.rb index 4879c55..abad285 100644 --- a/plugins/stoa/test/unit/person_api_test.rb +++ b/plugins/stoa/test/unit/person_api_test.rb @@ -92,10 +92,19 @@ class StoaPlugin::PersonApiTest < ActiveSupport::TestCase assert_nil tags['n'] end + should 'not provide information of private articles tags' do + create_article_with_tags(person.id, 'free_software, noosfero, linux', {:published => false}) + create_article_with_tags(person.id, 'free_software, linux') + create_article_with_tags(person.id, 'free_software') + + api = StoaPlugin::PersonApi.new(person) + assert !api.tags.has_key?('noosfero') + end + private - def create_article_with_tags(profile_id, tags = '') - article = fast_create(Article, :profile_id => profile_id) + def create_article_with_tags(profile_id, tags = '', options = {}) + article = fast_create(Article, options.merge(:profile_id => profile_id)) article.tag_list = tags article.save! article -- libgit2 0.21.2