Skip to content

Player and Zone Assignments

An assignment gives an Operator or Viewer access to specific players and zones. Admins always see everything and ignore the assignment list. Non-admin users see and control only what they are explicitly assigned — an unassigned player or zone is invisible to them.

Assignments are stored inside the workspace, not the user file. This means:

  • Loading a different workspace can instantly change what each user sees.
  • Exporting a workspace carries the assignments with it.
  • Assignments are keyed by username, so migrating a workspace to a new installation works as long as the same usernames exist on the target.
  1. Open the Users tab as an admin.
  2. Find the user and click the Assignments cell (it shows the current player/zone counts).
  3. A dialog opens with two tabs: Players and Zones.
  4. Use the search box to filter by name. Toggle Favorites to narrow the list to favorite items.
  5. Check the resources the user should have access to. Select all filtered and Clear all filtered help when managing large lists.
  6. Click Save to apply.

Changes take effect on the user’s next request — no logout required. If the user is streaming events, the stream is automatically filtered to the new assignment set.

Admin users are not shown in the assignment editor because the field has no effect for them.

A non-admin user with no assignments sees an empty players and zones list. Every endpoint that targets a specific resource returns 403 Forbidden. This is the safe default — you must explicitly grant access before a new Operator or Viewer can do anything.

Some endpoints touch two resources at once. For example, attaching a player to a zone in the routing matrix requires both IDs. Because only admins can edit the routing matrix, these endpoints only need the admin check and skip the per-resource assignment check.

For single-resource endpoints (volume, mute, play, EQ, load-track), the user must have the specific player or zone in their assignment list. A user who owns the player but not the zone cannot route audio between them — only admins can.

Loading a workspace refreshes every active session’s assignment list. Users see the assignments from the newly loaded workspace immediately, without logging out. This matters when you have per-shift workspaces with different assignment layouts: the same username can have very different access in the “Morning” and “Evening” workspaces.

If a user has no entry in the newly loaded workspace, their assignment list becomes empty and they lose access to all resources until an admin adds assignments or a different workspace is loaded.

Admins can read and write the assignment list directly:

  • GET /api/workspace/assignments — returns every user’s assignment list.
  • PUT /api/workspace/assignments — replaces the full list in one call.

The endpoints take an array of { username, assignedPlayerIds, assignedZoneIds } entries. Missing users have no assignments (which means no access). Entries for deleted users are harmless — they’re ignored at authorization time.

Full schema is in the API Reference.

  • Use Viewer accounts for dashboards and wall displays. Assign the zones you want to monitor; the viewer will only see level meters for those zones.
  • Use Operator accounts for staff. Typical pattern: one operator per area (lounge, patio, dining), each assigned to the players and zones that serve that area.
  • Keep one Admin account for setup and break-glass access, and at least one extra Admin in case the first one gets locked out or its password is forgotten.