4: Users, roles and permissions

The Dashboard is multi-user. Access is controlled by role and by two scoping axes: which servers and which modules a user may use.

4.1: Roles

prop isAdmin => $this->role === 'admin'

4.2: Scoping

A non-admin user carries two allow-lists:

Scope Controls
allowed servers which hosts in the fleet they can act on
allowed modules which Dashboard modules they can open

The navigation and every route honor both, so a user scoped to one server and the Notifications module sees exactly that and nothing else.

4.3: Authentication

Login uses bcrypt password hashing, and the fleet can verify a user against a shared secret so one identity works across sub-dashboards. Because auth is a resource, the same gating is available to any Phlo app that needs it, not just the Dashboard.

We use essential cookies to make this site work. With your permission we also use analytics to improve the site.