Invited user sees "No sites assigned"
Invited user sees “No sites assigned”
You invited a user, they accepted the invite, set their password, and logged in — but they see no sites, no cameras, and an empty dashboard. This page is for admins managing user access.
Symptom
The newly invited user reports one of:
- A banner that reads
No sites assignedon the dashboard. - The Cameras page is empty.
- Site filter dropdowns show nothing to pick from.
From your admin account the user exists on the Users page, has an active status, and has the expected role.
Likely causes
- Site access for viewers is explicit, not automatic. Viewer access is scoped through
user_site_access. If you did not tick any site during the invite flow — or did not open the site-access dialog afterwards — the viewer’s access list is empty, which fail-closes to “see nothing.” - Sites the user once had access to were all removed. Another admin revoked site access for this user, or the site itself was deleted. Either leaves the user with no rows in their access list.
- The user’s role is
viewerbut you expected org-wide access. Admins and operators have implicit org-wide access. Viewers do not. If the role is viewer and site assignment is blank, the symptom above is the exact expected behaviour.
Fixes
Grant site access to the viewer
- Open Users in the left nav.
- Find the affected user’s row.
- Click the overflow menu and choose Manage site access (or open the user detail page and click Site access).
- Tick each site the user should see.
- Click Save. The cloud issues a
PUT /users/{id}/site-accesswhich replaces all existing assignments. The change takes effect on the user’s next API call — usually within seconds.
The admin action is recorded in the audit log as site.user_access_granted for added sites.
If you expected org-wide access, check the role
If this user should see every site in the org:
- On the user’s detail page, check the Role field.
- If the role is
viewer, either:- Change the role to
operator(day-to-day ops, org-wide) oradmin(governance, org-wide), or - Keep the role as viewer and grant access to all sites explicitly via the site-access dialog.
- Change the role to
Role changes take effect immediately for new API calls. Existing tokens keep their current claims until the next refresh.
If a site was deleted out from under them
A deleted site is not visible in the site picker, but the user’s access row for that site is removed on site deletion. If the user had access only to that one site, they now have zero rows — which looks identical to the initial symptom. Assign them to an active site instead.
Verify the fix
- Ask the user to reload the page.
- The dashboard shows camera counts and the site filter has entries.
- The Cameras page lists cameras at the newly granted sites.
- The audit log contains a
site.user_access_grantedentry with your user ID asgranted_by.
Still stuck?
- Manage site access — the full walkthrough for the site-access dialog
- Why NovaVMS uses five roles — what each role sees by default
- Org scoping and site scoping — how the two scopes compose