Roles vs module access
How a member's role and their per-section access work together — the role is the starting point, and ticked sections give exactly what you choose, even above the role.
Two things decide what a team member can do:
- Role — Owner, Admin, Manager, Salesman or Cashier. It sets the starting point and the default for each permission switch.
- Limit which sections they can open (optional) — each section set to No access, View or View & edit. When it is on, the member gets exactly what you tick — less than the role, or more (for example POS for a cashier).
The server enforces this on every call, so a hidden section is backed by a real refusal, not just a missing link.
The role ladder#
| Role | Tier | In short |
|---|---|---|
Owner (SUPER_ADMIN) | 4 | The person who signed up. Always full access; cannot be edited or locked out. |
Admin (ADMIN) | 3 | Everything, including Team Members and Settings. |
Manager (MANAGER) | 2 | Day-to-day work in every module, including POS. Can view but not change Team Members and Settings. |
Salesman (SALESMAN) | 1 | Read-only. |
Cashier (CASHIER) | 1 | Read-only. |
Without limited sections, some sections need a minimum role — for example POS, Reports and Finance need Manager, and Team Members and Settings need Admin. See How the app is organised.
Access without a matrix#
A member with no custom matrix gets the access their role implies:
| Role | Every module | Team Members, Settings |
|---|---|---|
| Owner, Admin | View & edit | View & edit |
| Manager | View & edit | View |
| Cashier, Salesman | View | View |
The three presets#
The Team page offers three one-click levels. Each sets the matrix for every module at once:
| Preset | What it sets | Role it assigns |
|---|---|---|
| Read only — View records, change nothing | Every module View, except Team Members and Settings which are No access (Dashboard is always at least View). | Cashier |
| Read & write — Edit day-to-day records | Every module View & edit, except Team Members and Settings which are View. | Manager |
| Full access — Everything, including the team | Every module View & edit. | Admin |
Change any single cell and the member shows as Custom.
How a custom matrix sets the role#
Because every screen also checks the role, the app keeps the two consistent automatically when you save a matrix:
- View & edit on Team Members or Settings → the member becomes Admin.
- Otherwise, View & edit on any module → Manager.
- Only View / No access everywhere → Cashier (read-only).
Those two modules carry a warning in the matrix because edit access to them is administrative power over the whole workspace.
Special modules#
| Module | Rule |
|---|---|
| Dashboard | Always at least View — the app cannot open without it. |
| Subscription (Billing) | The matrix only hides the menu item. Billing itself is never blocked, so a business can always reach checkout to pay and reactivate. |
| Notifications, Recycle bin, Support | Not controlled by the matrix; they keep their own role rules. |
When changes take effect#
Access is checked on every request, not stored in the member's session. A change applies within about a minute — and immediately on the member's next request in most cases — without them signing out.
Error messages#
| Message | Cause |
|---|---|
| You do not have access to this section. Ask an administrator to grant it. | The module is No access for this member. |
| You have view-only access to this section. | The module is View and the member tried to change something. |
| Your access level is read only — you can view records but not change them. | The member's role is Cashier or Salesman. |
| Insufficient permissions | The action needs a higher role (for example deleting from the Recycle bin needs Admin). |
| Access restricted — This section is limited to a higher role. | Shown in place of a page opened by URL above the member's role. |
Related#
Last updated 04/10/2026