technitium 0.4.0

Typed async Rust client for the Technitium DNS Server API
Documentation
# Admin: List Permissions

## Endpoint

`/api/admin/permissions/list`

## Method

GET

## Description

Returns a list of all permission sections with their user and group permission assignments.

## Authentication

Required. Token must be provided via the `token` parameter.

## Permissions

Administration: View

## Parameters

| Name | Type | Required | Conditional | Description |
|------|------|----------|-------------|-------------|
| `token` | string | Yes | No | The session token generated by the `login` or the `createToken` call. |
| `node` | string | No | No | The node domain name for which the API call is intended. When unspecified, the current node is used. Can only be used when Clustering is initialized. |

## Response Fields

| Field | Type | Description |
|-------|------|-------------|
| `permissions` | array | List of permission section objects. |
| `permissions[].section` | string | The name of the permission section. Known values: `Dashboard`, `Zones`, `Cache`, `Allowed`, `Blocked`, `Apps`, `DnsClient`, `Settings`, `DhcpServer`, `Administration`, `Logs`. |
| `permissions[].userPermissions` | array | List of user-level permission objects for this section. |
| `permissions[].userPermissions[].username` | string | The username. |
| `permissions[].userPermissions[].canView` | boolean | Whether the user can view this section. |
| `permissions[].userPermissions[].canModify` | boolean | Whether the user can modify this section. |
| `permissions[].userPermissions[].canDelete` | boolean | Whether the user can delete in this section. |
| `permissions[].groupPermissions` | array | List of group-level permission objects for this section. |
| `permissions[].groupPermissions[].name` | string | The group name. |
| `permissions[].groupPermissions[].canView` | boolean | Whether the group can view this section. |
| `permissions[].groupPermissions[].canModify` | boolean | Whether the group can modify this section. |
| `permissions[].groupPermissions[].canDelete` | boolean | Whether the group can delete in this section. |

## Conditional Logic Notes

- The `node` parameter is only functional when Clustering is initialized.
- Permission sections are fixed by the server; they cannot be created or deleted, only configured.

## Edge Cases

- The `userPermissions` array may be empty for sections where no per-user overrides have been configured.
- The `Administration` section is typically restricted to the `Administrators` group only.
- The `Everyone` group provides baseline permissions for all authenticated users.