mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-04 00:18:01 +01:00
docs: add description of the project users/roles endpoint
This commit is contained in:
parent
f92d86061a
commit
01f7293e2e
@ -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
|
||||||
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user