mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +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