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 32a7e49..3f5e3dc 100644 --- a/lib/api/v1/users.rb +++ b/lib/api/v1/users.rb @@ -17,6 +17,17 @@ module API 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 end -- libgit2 0.21.2