Commit dc740341ee0956038e2366d315bf4cebc352174c
1 parent
c71d67d7
Exists in
api_tasks
and in
3 other branches
api: review people mountpoint
Showing
3 changed files
with
38 additions
and
33 deletions
Show diff stats
lib/noosfero/api/v1/people.rb
| ... | ... | @@ -38,13 +38,14 @@ module Noosfero |
| 38 | 38 | |
| 39 | 39 | desc "Return the person information" |
| 40 | 40 | get ':id' do |
| 41 | - person = environment.people.visible.find_by_id(params[:id]) | |
| 41 | + person = environment.people.visible_for_person(current_person).find_by_id(params[:id]) | |
| 42 | 42 | present person, :with => Entities::Person |
| 43 | 43 | end |
| 44 | 44 | |
| 45 | 45 | desc "Return the person friends" |
| 46 | 46 | get ':id/friends' do |
| 47 | - friends = current_person.friends.visible | |
| 47 | + person = environment.people.visible_for_person(current_person).find_by_id(params[:id]) | |
| 48 | + friends = person.friends.visible | |
| 48 | 49 | present friends, :with => Entities::Person |
| 49 | 50 | end |
| 50 | 51 | ... | ... |
test/unit/api/people_test.rb
| ... | ... | @@ -16,21 +16,17 @@ class PeopleTest < ActiveSupport::TestCase |
| 16 | 16 | end |
| 17 | 17 | |
| 18 | 18 | should 'not list invisible people' do |
| 19 | - person1 = fast_create(Person) | |
| 20 | - fast_create(Person, :visible => false) | |
| 19 | + invisible_person = fast_create(Person, :visible => false) | |
| 21 | 20 | |
| 22 | 21 | get "/api/v1/people?#{params.to_query}" |
| 23 | - json = JSON.parse(last_response.body) | |
| 24 | - assert_equivalent [person1.id, person.id], json['people'].map {|c| c['id']} | |
| 22 | + assert_not_includes json_response_ids(:people), invisible_person.id | |
| 25 | 23 | end |
| 26 | 24 | |
| 27 | 25 | should 'not list private people without permission' do |
| 28 | - person1 = fast_create(Person) | |
| 29 | - fast_create(Person, :public_profile => false) | |
| 26 | + private_person = fast_create(Person, :public_profile => false) | |
| 30 | 27 | |
| 31 | 28 | get "/api/v1/people?#{params.to_query}" |
| 32 | - json = JSON.parse(last_response.body) | |
| 33 | - assert_equivalent [person1.id, person.id], json['people'].map {|c| c['id']} | |
| 29 | + assert_not_includes json_response_ids(:people), private_person.id | |
| 34 | 30 | end |
| 35 | 31 | |
| 36 | 32 | should 'list private person for friends' do |
| ... | ... | @@ -40,8 +36,7 @@ class PeopleTest < ActiveSupport::TestCase |
| 40 | 36 | p2.add_friend(person) |
| 41 | 37 | |
| 42 | 38 | get "/api/v1/people?#{params.to_query}" |
| 43 | - json = JSON.parse(last_response.body) | |
| 44 | - assert_equivalent [p1.id, p2.id, person.id], json['people'].map {|c| c['id']} | |
| 39 | + assert_includes json_response_ids(:people), p2.id | |
| 45 | 40 | end |
| 46 | 41 | |
| 47 | 42 | should 'get person' do |
| ... | ... | @@ -61,42 +56,44 @@ class PeopleTest < ActiveSupport::TestCase |
| 61 | 56 | end |
| 62 | 57 | |
| 63 | 58 | should 'not get private people without permission' do |
| 64 | - person = fast_create(Person) | |
| 65 | - fast_create(Person, :public_profile => false) | |
| 59 | + private_person = fast_create(Person, :public_profile => false) | |
| 66 | 60 | |
| 67 | - get "/api/v1/people/#{person.id}?#{params.to_query}" | |
| 61 | + get "/api/v1/people/#{private_person.id}?#{params.to_query}" | |
| 68 | 62 | json = JSON.parse(last_response.body) |
| 69 | - assert_equal person.id, json['person']['id'] | |
| 63 | + assert json['person'].blank? | |
| 70 | 64 | end |
| 71 | 65 | |
| 72 | 66 | should 'get private person for friends' do |
| 73 | - person = fast_create(Person, :public_profile => false) | |
| 74 | - person.add_friend(person) | |
| 67 | + private_person = fast_create(Person, :public_profile => false) | |
| 68 | + person.add_friend(private_person) | |
| 69 | + private_person.add_friend(person) | |
| 75 | 70 | |
| 76 | - get "/api/v1/people/#{person.id}?#{params.to_query}" | |
| 71 | + get "/api/v1/people/#{private_person.id}?#{params.to_query}" | |
| 77 | 72 | json = JSON.parse(last_response.body) |
| 78 | - assert_equal person.id, json['person']['id'] | |
| 73 | + assert_equal private_person.id, json['person']['id'] | |
| 79 | 74 | end |
| 80 | 75 | |
| 81 | 76 | should 'list person friends' do |
| 82 | - p = fast_create(Person) | |
| 83 | - fast_create(Person) | |
| 84 | - person.add_friend(p) | |
| 77 | + friend = fast_create(Person) | |
| 78 | + person.add_friend(friend) | |
| 79 | + friend.add_friend(person) | |
| 85 | 80 | |
| 86 | - get "/api/v1/people/#{person.id}/friends?#{params.to_query}" | |
| 87 | - json = JSON.parse(last_response.body) | |
| 88 | - assert_equivalent [p.id], json['people'].map {|c| c['id']} | |
| 81 | + get "/api/v1/people/#{friend.id}/friends?#{params.to_query}" | |
| 82 | + assert_includes json_response_ids(:people), person.id | |
| 89 | 83 | end |
| 90 | 84 | |
| 91 | - should 'not list person friends invisible' do | |
| 92 | - p1 = fast_create(Person) | |
| 93 | - p2 = fast_create(Person, :visible => false) | |
| 94 | - person.add_friend(p1) | |
| 95 | - person.add_friend(p2) | |
| 85 | + should 'not list person invisible friends' do | |
| 86 | + friend = fast_create(Person) | |
| 87 | + invisible_friend = fast_create(Person, :visible => false) | |
| 88 | + person.add_friend(friend) | |
| 89 | + person.add_friend(invisible_friend) | |
| 90 | + friend.add_friend(person) | |
| 91 | + invisible_friend.add_friend(person) | |
| 96 | 92 | |
| 97 | 93 | get "/api/v1/people/#{person.id}/friends?#{params.to_query}" |
| 98 | - json = JSON.parse(last_response.body) | |
| 99 | - assert_equivalent [p1.id], json['people'].map {|c| c['id']} | |
| 94 | + friends = json_response_ids(:people) | |
| 95 | + assert_includes friends, friend.id | |
| 96 | + assert_not_includes friends, invisible_friend.id | |
| 100 | 97 | end |
| 101 | 98 | |
| 102 | 99 | end | ... | ... |
test/unit/api/test_helper.rb