Spaces:
Sleeping
Sleeping
| --- | |
| title: "Users" | |
| description: "Manage users in MCPHub." | |
| --- | |
| import { Card, Cards } from 'mintlify'; | |
| <Card | |
| title="GET /api/users" | |
| href="#get-all-users" | |
| > | |
| Get a list of all users. | |
| </Card> | |
| <Card | |
| title="GET /api/users/:username" | |
| href="#get-a-user" | |
| > | |
| Get details of a specific user. | |
| </Card> | |
| <Card | |
| title="POST /api/users" | |
| href="#create-a-user" | |
| > | |
| Create a new user. | |
| </Card> | |
| <Card | |
| title="PUT /api/users/:username" | |
| href="#update-a-user" | |
| > | |
| Update an existing user. | |
| </Card> | |
| <Card | |
| title="DELETE /api/users/:username" | |
| href="#delete-a-user" | |
| > | |
| Delete a user. | |
| </Card> | |
| <Card | |
| title="GET /api/users-stats" | |
| href="#get-user-statistics" | |
| > | |
| Get statistics about users and their server access. | |
| </Card> | |
| --- | |
| ### Get All Users | |
| Retrieves a list of all users in the system. | |
| - **Endpoint**: `/api/users` | |
| - **Method**: `GET` | |
| - **Authentication**: Required (Admin only) | |
| - **Response**: | |
| ```json | |
| { | |
| "success": true, | |
| "data": [ | |
| { | |
| "username": "admin", | |
| "role": "admin", | |
| "servers": ["server1", "server2"], | |
| "groups": ["group1"] | |
| }, | |
| { | |
| "username": "user1", | |
| "role": "user", | |
| "servers": ["server1"], | |
| "groups": [] | |
| } | |
| ] | |
| } | |
| ``` | |
| --- | |
| ### Get a User | |
| Retrieves details of a specific user. | |
| - **Endpoint**: `/api/users/:username` | |
| - **Method**: `GET` | |
| - **Authentication**: Required (Admin only) | |
| - **Parameters**: | |
| - `:username` (string, required): The username of the user. | |
| - **Response**: | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "username": "user1", | |
| "role": "user", | |
| "servers": ["server1", "server2"], | |
| "groups": ["group1"] | |
| } | |
| } | |
| ``` | |
| --- | |
| ### Create a User | |
| Creates a new user in the system. | |
| - **Endpoint**: `/api/users` | |
| - **Method**: `POST` | |
| - **Authentication**: Required (Admin only) | |
| - **Body**: | |
| ```json | |
| { | |
| "username": "newuser", | |
| "password": "securepassword", | |
| "role": "user", | |
| "servers": ["server1"], | |
| "groups": ["group1"] | |
| } | |
| ``` | |
| - `username` (string, required): The username for the new user. | |
| - `password` (string, required): The password for the new user. Must be at least 6 characters. | |
| - `role` (string, optional): The role of the user. Either `"admin"` or `"user"`. Defaults to `"user"`. | |
| - `servers` (array of strings, optional): List of server names the user has access to. | |
| - `groups` (array of strings, optional): List of group IDs the user belongs to. | |
| --- | |
| ### Update a User | |
| Updates an existing user's information. | |
| - **Endpoint**: `/api/users/:username` | |
| - **Method**: `PUT` | |
| - **Authentication**: Required (Admin only) | |
| - **Parameters**: | |
| - `:username` (string, required): The username of the user to update. | |
| - **Body**: | |
| ```json | |
| { | |
| "password": "newpassword", | |
| "role": "admin", | |
| "servers": ["server1", "server2", "server3"], | |
| "groups": ["group1", "group2"] | |
| } | |
| ``` | |
| - `password` (string, optional): New password for the user. | |
| - `role` (string, optional): New role for the user. | |
| - `servers` (array of strings, optional): Updated list of accessible servers. | |
| - `groups` (array of strings, optional): Updated list of groups. | |
| --- | |
| ### Delete a User | |
| Removes a user from the system. | |
| - **Endpoint**: `/api/users/:username` | |
| - **Method**: `DELETE` | |
| - **Authentication**: Required (Admin only) | |
| - **Parameters**: | |
| - `:username` (string, required): The username of the user to delete. | |
| --- | |
| ### Get User Statistics | |
| Retrieves statistics about users and their access to servers and groups. | |
| - **Endpoint**: `/api/users-stats` | |
| - **Method**: `GET` | |
| - **Authentication**: Required (Admin only) | |
| - **Response**: | |
| ```json | |
| { | |
| "success": true, | |
| "data": { | |
| "totalUsers": 5, | |
| "adminUsers": 1, | |
| "regularUsers": 4, | |
| "usersPerServer": { | |
| "server1": 3, | |
| "server2": 2 | |
| }, | |
| "usersPerGroup": { | |
| "group1": 2, | |
| "group2": 1 | |
| } | |
| } | |
| } | |
| ``` | |
| **Note**: All user management endpoints require admin authentication. | |