Commit 3e2a483accb48c7a76ff617ed933c46d236581be
1 parent
3c7ef3f4
Exists in
fix_sign_up_form
api: put roles endpoint inside profiles resource
Showing
2 changed files
with
11 additions
and
5 deletions
Show diff stats
app/api/v1/roles.rb
@@ -5,14 +5,15 @@ module Api | @@ -5,14 +5,15 @@ module Api | ||
5 | 5 | ||
6 | MAX_PER_PAGE = 50 | 6 | MAX_PER_PAGE = 50 |
7 | 7 | ||
8 | - resource :organizations do | ||
9 | - segment "/:organization_id" do | 8 | + resource :profiles do |
9 | + segment "/:profile_id" do | ||
10 | resource :roles do | 10 | resource :roles do |
11 | 11 | ||
12 | paginate max_per_page: MAX_PER_PAGE | 12 | paginate max_per_page: MAX_PER_PAGE |
13 | get do | 13 | get do |
14 | - organization = environment.profiles.find(params[:organization_id]) | ||
15 | - roles = Profile::Roles.organization_roles(organization.environment.id, organization.id) | 14 | + profile = environment.profiles.find(params[:profile_id]) |
15 | + return forbidden! unless profile.kind_of?(Organization) | ||
16 | + roles = Profile::Roles.organization_roles(profile.environment.id, profile.id) | ||
16 | present_partial paginate(roles), with: Entities::Role | 17 | present_partial paginate(roles), with: Entities::Role |
17 | end | 18 | end |
18 | 19 |
test/api/roles_test.rb
@@ -16,8 +16,13 @@ class TolesTest < ActiveSupport::TestCase | @@ -16,8 +16,13 @@ class TolesTest < ActiveSupport::TestCase | ||
16 | role1 = Role.create!(key: 'profile_administrator', name: 'admin', environment: environment) | 16 | role1 = Role.create!(key: 'profile_administrator', name: 'admin', environment: environment) |
17 | role2 = Role.new(key: 'profile_moderator', name: 'moderator', environment: environment) | 17 | role2 = Role.new(key: 'profile_moderator', name: 'moderator', environment: environment) |
18 | profile.custom_roles << role2 | 18 | profile.custom_roles << role2 |
19 | - get "/api/v1/organizations/#{profile.id}/roles?#{params.to_query}" | 19 | + get "/api/v1/profiles/#{profile.id}/roles?#{params.to_query}" |
20 | json = JSON.parse(last_response.body) | 20 | json = JSON.parse(last_response.body) |
21 | assert_equivalent [role1.id, role2.id], json['roles'].map {|r| r['id']} | 21 | assert_equivalent [role1.id, role2.id], json['roles'].map {|r| r['id']} |
22 | end | 22 | end |
23 | + | ||
24 | + should 'return forbidden status when profile is not an organization' do | ||
25 | + get "/api/v1/profiles/#{person.id}/roles?#{params.to_query}" | ||
26 | + assert_equal 403, last_response.status | ||
27 | + end | ||
23 | end | 28 | end |