Skip to content
Snippets Groups Projects
Commit f7f91e84 authored by Nick Thomas's avatar Nick Thomas Committed by Himanshu Kapoor
Browse files

Add a skip_users filter to the project users API

This functionality is available in the /autocomplete users pseudo-API.
We're attempting to replace that with the canonical API, so it needs
support for this parameter too.
parent bbf639c4
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -855,6 +855,7 @@ GET /projects/:id/users
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `search` | string | no | Search for specific users |
| `skip_users` | array[int] | no | Filter out users with the specified IDs |
 
```json
[
Loading
Loading
Loading
Loading
@@ -489,11 +489,13 @@ module API
end
params do
optional :search, type: String, desc: 'Return list of users matching the search criteria'
optional :skip_users, type: Array[Integer], desc: 'Filter out users with the specified IDs'
use :pagination
end
get ':id/users' do
users = DeclarativePolicy.subject_scope { user_project.team.users }
users = users.search(params[:search]) if params[:search].present?
users = users.where_not_in(params[:skip_users]) if params[:skip_users].present?
 
present paginate(users), with: Entities::UserBasic
end
Loading
Loading
Loading
Loading
@@ -1494,6 +1494,17 @@ describe API::Projects do
 
expect(response).to have_gitlab_http_status(404)
end
it 'filters out users listed in skip_users' do
other_user = create(:user)
project.team.add_developer(other_user)
get api("/projects/#{project.id}/users?skip_users=#{user.id}", user)
expect(response).to have_gitlab_http_status(200)
expect(json_response.size).to eq(1)
expect(json_response[0]['id']).to eq(other_user.id)
end
end
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment