Commit c9d279cd75945726dc74d0a1285b07d7f88cd1a7

Authored by Rodrigo Souto
1 parent 7732936c

stoa-person-api: not provide information of private articles tags

plugins/stoa/lib/stoa_plugin/person_api.rb
... ... @@ -24,7 +24,7 @@ class StoaPlugin::PersonApi < Noosfero::FieldsDecorator
24 24 end
25 25  
26 26 def tags
27   - articles.tag_counts({:order => 'tags.count desc', :limit => 10}).inject({}) do |memo,tag|
  27 + articles.published.tag_counts({:order => 'tags.count desc', :limit => 10}).inject({}) do |memo,tag|
28 28 memo[tag.name] = tag.count
29 29 memo
30 30 end
... ...
plugins/stoa/test/unit/person_api_test.rb
... ... @@ -92,10 +92,19 @@ class StoaPlugin::PersonApiTest < ActiveSupport::TestCase
92 92 assert_nil tags['n']
93 93 end
94 94  
  95 + should 'not provide information of private articles tags' do
  96 + create_article_with_tags(person.id, 'free_software, noosfero, linux', {:published => false})
  97 + create_article_with_tags(person.id, 'free_software, linux')
  98 + create_article_with_tags(person.id, 'free_software')
  99 +
  100 + api = StoaPlugin::PersonApi.new(person)
  101 + assert !api.tags.has_key?('noosfero')
  102 + end
  103 +
95 104 private
96 105  
97   - def create_article_with_tags(profile_id, tags = '')
98   - article = fast_create(Article, :profile_id => profile_id)
  106 + def create_article_with_tags(profile_id, tags = '', options = {})
  107 + article = fast_create(Article, options.merge(:profile_id => profile_id))
99 108 article.tag_list = tags
100 109 article.save!
101 110 article
... ...