summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-08-11 15:46:17 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-08-11 15:46:17 +0000
commit0887a2bd10c3d774299b5b779d0335ddcb5064de (patch)
treec9653af3aac17c7ea9be9a78aeb8e251fef75395 /lib/api
parent3f18ea1ea964a1214814692ec980435a9cb22ff6 (diff)
parent09a348eb139178be534d181273a360a3125df9f9 (diff)
downloadgitlab-ce-0887a2bd10c3d774299b5b779d0335ddcb5064de.tar.gz
Merge branch '36213-return-is_admin-in-users-api-when-current_user-is-admin' into 'master'
Include the `is_admin` field in the `GET /users/:id` API when current user is an admin Closes #36213 See merge request !13501
Diffstat (limited to 'lib/api')
-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