Settings — Roles
The Roles settings page manages the permission-based roles that can be assigned to user accounts. Each role has a display name, a system name, a description, and a set of granular permissions. The built-in admin role cannot be modified or deleted.
Page Layout
┌─────────────────────────────┬──────────────────────────────────────┐
│ Roles list │ Role Detail panel │
│ [🔍 search] [+ Add] │ (opens at /settings/roles/:id) │
│ ───────────────────────── │ │
│ Role Display Name │ │
│ Role Display Name │ │
└─────────────────────────────┴──────────────────────────────────────┘
Add New Role
Clicking + (requires role:create) opens the Add New Role dialog with four fields:
| Field | Description |
|---|---|
| Display Name | Human-readable name shown in the UI |
| System Name | Internal identifier (e.g. deck-officer) |
| Description | Free-text description of the role’s purpose |
| Permissions | Full permissions picker (see below) |
Role Detail Panel
| Property | Editable | Permission |
|---|---|---|
| Display Name | Yes | role:update |
| System Name | Yes | role:update |
| Description | Yes | role:update |
| Permissions | Yes | role:update |
All edit controls are hidden for the built-in admin role.
Action Buttons
| Button | Permission | Description |
|---|---|---|
| Duplicate Role | role:create |
Opens a pre-filled Add New Role dialog with the current role’s permissions copied; name, system name, and description must be filled in |
| Delete Role | role:delete |
Requires confirmation; permanently removes the role |
Both buttons are hidden for the admin role.
Permissions Picker
The permissions field uses a full-width, filterable, grouped picker:
- Permissions are grouped by area (the part before
:in the permission ID) and displayed in a 3-column responsive grid. - Within each area, the read permission is always listed first; other permissions are indented beneath it.
- An All toggle at the top of each group selects/deselects all permissions in that group.
- Unchecking a read permission automatically removes all other permissions in the same group.
- A filter text box narrows the visible permissions by description.
- Only permissions that the current operator themselves holds appear in the picker — operators cannot grant permissions above their own level.