diff --git a/lib/api/entities.rb b/lib/api/entities.rb index eea067e..1e8ed4a 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -61,6 +61,15 @@ module API root 'users', 'user' expose :login expose :person, :using => Profile + expose :permissions do |user, options| + output = {} + user.person.role_assignments.map do |role_assigment| + if role_assigment.resource.respond_to?(:identifier) + output[role_assigment.resource.identifier] = role_assigment.role.permissions + end + end + output + end end class UserLogin < User diff --git a/lib/api/v1/users.rb b/lib/api/v1/users.rb index 7d384de..8d16861 100644 --- a/lib/api/v1/users.rb +++ b/lib/api/v1/users.rb @@ -14,6 +14,17 @@ module API get ":id" do present environment.users.find(params[:id]), :with => Entities::User end + + get ":id/permissions" do + user = environment.users.find(params[:id]) + output = {} + user.person.role_assignments.map do |role_assigment| + if role_assigment.resource.respond_to?(:identifier) && role_assigment.resource.identifier == params[:profile] + output[:permissions] = role_assigment.role.permissions + end + end + present output + end end -- libgit2 0.21.2