Granular access privileges

Extend the permission system beyond workspace-level roles to support per-project access control and more refined scoping for External Viewer accounts. An Editor could be limited to specific projects; a Viewer could be scoped to data for a specific client.

Why this matters

The current four-role system (platform_superadmin, superadmin, editor, viewer) is coarse. In practice, workspaces often include contractors or part-time collaborators who should only see or edit a subset of projects. Without granular controls, the only options are full editor access or read-only access to everything — neither of which fits.

How it works

  • Project-level access control: When creating or editing a user account, an administrator can restrict an Editor to specific projects. That user's Gantt view shows only their assigned projects.
  • Client scoping for Viewers: External Viewer accounts can be tied to a specific client, so they only see projects tagged with that client. This is the UI counterpart to the backend data enforcement described in the Viewer RLS feature.
  • Permissions are displayed on the user list in the Control Panel and can be updated at any time.