users.rb
1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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
# Example Request:
# POST api/v1/users?user[login]=some_login&user[password]=some
post do
user = User.new(params[:user])
user.terms_of_use = environment.terms_of_use
user.environment = environment
if !user.save
render_api_errors!(user.errors.full_messages)
end
present user, :with => Entities::User
end
get ":id" do
present environment.users.find_by_id(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