Admin: Permissions
Manage individual permission overrides on users β granting or revoking specific capabilities without changing a user's role.
Endpoints overviewβ
| Method | Endpoint | Permission | Description |
|---|---|---|---|
GET | /api/permissions | admin:permissions:view | List all permissions |
PATCH | /api/permissions/:id | admin:permissions:edit | Update permission metadata |
GET | /api/permissions/users/:userId | admin:permissions:view | Get permissions for user |
POST | /api/permissions/users/:userId | admin:user_permissions:manage | Add permission override to user |
PATCH | /api/permissions/users/:userId/:permId | admin:user_permissions:manage | Update user permission scope |
DELETE | /api/permissions/users/:userId/:permId | admin:user_permissions:manage | Remove user permission override |
Endpointsβ
List all permissionsβ
GET /api/permissions β Auth required, Permission: admin:permissions:view
Returns every permission defined in the system.
Response β 200
[
{
"id": "perm-uuid-001",
"name": "episode:create",
"description": "Create new episodes",
"category": "episodes",
"scopeable": false,
"createdAt": "2025-01-01T00:00:00.000Z",
"descriptionI18n": {
"uk": "Π‘ΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ Π½ΠΎΠ²Ρ Π΅ΠΏΡΠ·ΠΎΠ΄ΠΈ",
"en": "Create new episodes",
"es": "Crear nuevos episodios"
}
}
]
Update permission metadataβ
PATCH /api/permissions/:id β Auth required, Permission: admin:permissions:edit
Request body (all fields optional)
{
"description": "Updated description",
"scopeable": true
}
Response β 200
{
"id": "perm-uuid-001",
"name": "episode:create",
"description": "Updated description",
"category": "episodes",
"scopeable": true,
"createdAt": "2025-01-01T00:00:00.000Z"
}
Get permissions for userβ
GET /api/permissions/users/:userId β Auth required, Permission: admin:permissions:view
Returns all per-user permission overrides (not inherited from role) for the specified user.
Response β 200
[
{
"id": "perm-uuid-005",
"name": "scene:block:frame:generate",
"description": "Generate start/end frames with AI",
"category": "scenes",
"scopeable": false,
"scope": "global"
}
]
Add permission override to userβ
POST /api/permissions/users/:userId β Auth required, Permission: admin:user_permissions:manage
Request body
{
"permissionId": "perm-uuid-005",
"scope": "global"
}
| Field | Required | Notes |
|---|---|---|
permissionId | yes | UUID of the permission to grant |
scope | no | global (default) | assigned |
Response β 204
Update user permission override scopeβ
PATCH /api/permissions/users/:userId/:permId β Auth required, Permission: admin:user_permissions:manage
Request body
{ "scope": "assigned" }
scope must be "global" or "assigned".
Response β 204
Remove user permission overrideβ
DELETE /api/permissions/users/:userId/:permId β Auth required, Permission: admin:user_permissions:manage
Response β 204