users.rb 854 Bytes
module API
  module V1
    class Users < Grape::API
      before { authenticate! }

      resource :users do

        #FIXME make the pagination
        #FIXME put it on environment context
        get do
          present environment.users, :with => Entities::User
        end

        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

    end
  end
end