mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-30 00:06:38 +08:00
3.6 KiB
3.6 KiB
Group & Permission Management API
Groups organize users and tunnels, with permissions controlling access.
Tunnel Groups
POST /api/v1/group/tunnel/list
List all tunnel groups.
Request: {}
Response:
{
"code": 0,
"data": [
{
"id": 1,
"name": "Premium-Tunnels",
"status": 1,
"tunnel_ids": [1, 2, 3],
"created_at": 1706659200000
}
]
}
POST /api/v1/group/tunnel/create
Create a tunnel group.
Request:
{
"name": "Premium-Tunnels",
"status": 1
}
POST /api/v1/group/tunnel/update
Update tunnel group.
Request:
{
"id": 1,
"name": "VIP-Tunnels",
"status": 1
}
POST /api/v1/group/tunnel/delete
Delete tunnel group.
Request:
{"id": 1}
POST /api/v1/group/tunnel/assign
Assign tunnels to a group.
Request:
{
"groupId": 1,
"tunnelIds": [1, 2, 3]
}
User Groups
POST /api/v1/group/user/list
List all user groups.
Request: {}
Response:
{
"code": 0,
"data": [
{
"id": 1,
"name": "VIP-Users",
"status": 1,
"user_ids": [2, 3, 4],
"created_at": 1706659200000
}
]
}
POST /api/v1/group/user/create
Create a user group.
Request:
{
"name": "VIP-Users",
"status": 1
}
POST /api/v1/group/user/update
Update user group.
Request:
{
"id": 1,
"name": "Premium-Users",
"status": 1
}
POST /api/v1/group/user/delete
Delete user group.
Request:
{"id": 1}
POST /api/v1/group/user/assign
Assign users to a group.
Request:
{
"groupId": 1,
"userIds": [2, 3, 4]
}
Permissions
Permissions link user groups to tunnel groups, allowing users in a user group to access tunnels in a tunnel group.
POST /api/v1/group/permission/list
List all permissions.
Request: {}
Response:
{
"code": 0,
"data": [
{
"id": 1,
"user_group_id": 1,
"user_group_name": "VIP-Users",
"tunnel_group_id": 1,
"tunnel_group_name": "Premium-Tunnels",
"created_at": 1706659200000
}
]
}
POST /api/v1/group/permission/assign
Create a permission (grant user group access to tunnel group).
Request:
{
"userGroupId": 1,
"tunnelGroupId": 1
}
Response:
{"code": 0, "msg": "success", "data": {"id": 1}}
POST /api/v1/group/permission/remove
Remove a permission.
Request:
{"id": 1}
Workflow: Set Up Group-Based Access
# 1. Create user group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/user/create" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"Standard-Users"}'
# Response: {"data":{"id":1}}
# 2. Create tunnel group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/tunnel/create" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"Standard-Tunnels"}'
# Response: {"data":{"id":1}}
# 3. Add tunnels to tunnel group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/tunnel/assign" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"groupId":1,"tunnelIds":[1,2,3]}'
# 4. Add users to user group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/user/assign" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"groupId":1,"userIds":[2,3,4]}'
# 5. Grant permission (user group -> tunnel group)
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/permission/assign" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"userGroupId":1,"tunnelGroupId":1}'
Now users 2, 3, 4 can access tunnels 1, 2, 3.