summaryrefslogtreecommitdiff
path: root/lib/api/users.rb
diff options
context:
space:
mode:
authorMarcia Ramos <virtua.creative@gmail.com>2017-08-15 11:20:11 -0300
committerMarcia Ramos <virtua.creative@gmail.com>2017-08-15 11:20:11 -0300
commit35c9a75eff464ff7bb0e58c67488a6fa1bdebaaa (patch)
treeb78097fd10cad31f45b8b6613d45960f2872802c /lib/api/users.rb
parent0112d13314e1aea350c7dacc02c0f1c527566809 (diff)
parentfe09c25d68a61c5874e9beb0f018c05a4d789d70 (diff)
downloadgitlab-ce-docs-topic-permissions.tar.gz
Diffstat (limited to 'lib/api/users.rb')
-rw-r--r--lib/api/users.rb13
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/api/users.rb b/lib/api/users.rb
index a590f2692a2..e2019d6d512 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -79,22 +79,17 @@ module API
end
desc 'Get a single user' do
- success Entities::UserBasic
+ success Entities::User
end
params do
requires :id, type: Integer, desc: 'The ID of the user'
end
get ":id" do
user = User.find_by(id: params[:id])
- not_found!('User') unless user
+ not_found!('User') unless user && can?(current_user, :read_user, user)
- if current_user && current_user.admin?
- present user, with: Entities::UserPublic
- elsif can?(current_user, :read_user, user)
- present user, with: Entities::User
- else
- render_api_error!("User not found.", 404)
- end
+ opts = current_user&.admin? ? { with: Entities::UserWithAdmin } : {}
+ present user, opts
end
desc 'Create a user. Available only for admins.' do