1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-25 00:07:47 +01:00

docs: add description of the project users/roles endpoint

This commit is contained in:
Thomas Heartman 2022-02-01 15:20:18 +01:00
parent f92d86061a
commit 01f7293e2e

View File

@ -646,3 +646,131 @@ Authorization:$KEY
]
}
```
## Manage project users and roles
You can add and remove users to a project using the `/api/admin/projects/:projectId/users/:userId/roles/:roleId` endpoint. When adding or removing users, you must also provide the ID for the role to give them (when adding) or the ID of the role they currently have (when removing).
There is no way to update a user's role directly at the moment. Instead, if you want to change a user's role, first remove the user from the project and then add them back with the desired role.
### Add a user to a project
``` http
POST /api/admin/projects/:projectId/users/:userId/roles/:roleId
```
This will add a user to a project and give the user a specified role within that project.
#### URL parameters
| Parameter | Type | Description | Example value |
|-------------|---------|-----------------------------------------------------------------------|-------------------|
| `userId` | integer | The ID of the user you want to add to the project. | `1` |
| `projectId` | string | The id of the project to add the user to. | `"MyCoolProject"` |
| `roleId` | integer | The id of the role you want to assign to the new user in the project. | `7` |
#### Responses
<details>
<summary>Responses data</summary>
##### 200 OK
The user was added to the project with the specified role.
``` json
{ }
```
##### 400 Bad Request
The user already exists in the project and cannot be added again:
``` json
[
{
"msg": "User already has access to project=<projectId>"
}
]
```
</details>
#### Example query
The following query would add the user with ID 42 to the _MyCoolProject_ project and give them the role with ID 13.
```bash
http POST \
http://localhost:4242/api/admin/projects/MyCoolProject/users/42/roles/13 \
Authorization:$KEY
```
### Remove a user from a project
``` http
DELETE /api/admin/projects/:projectId/users/:userId/roles/:roleId
```
This will remove the specified from user from the project. The user _must_ have the role indicated by the `:roleId` URL parameter for the request to succeed.
#### URL parameters
| Parameter | Type | Description | Example value |
|-------------|---------|-----------------------------------------------------------------------|-------------------|
| `userId` | integer | The ID of the user you want to remove from the project. | `1` |
| `projectId` | string | The id of the project to remove the user from. | `"MyCoolProject"` |
| `roleId` | integer | The current role the of the user you want to remove from the project. | `7` |
#### Responses
<details>
<summary>Responses data</summary>
:::caution
If you provide the wrong role id for the user, but there is another user in the same project with the role you provided, you'll get a 200 OK response indicating success, but the user will not be removed.
:::
##### 200 OK
The user has been removed from the project.
``` json
{ }
```
##### 400 Bad Request
No user with the current role exists in the project:
``` json
[
{
"msg": "Couldn't find roleId=<roleId> on project=<projectId>"
}
]
```
You tried to remove the only user with the role `owner` in the project:
``` json
[
{
"msg": "A project must have at least one owner."
}
]
```
</details>
#### Example query
The following query would remove the user with ID 42 and role ID 13 from the _MyCoolProject_ project.
```bash
http DELETE \
http://localhost:4242/api/admin/projects/MyCoolProject/users/42/roles/13 \
Authorization:$KEY
```