Skip to content
Kapda StockDocs

Roles vs module access

How a member's role and their per-module access matrix work together — and why a matrix can narrow access but never widen it.

Two things decide what a team member can do:

  1. Role — a tier: Owner, Admin, Manager, Salesman or Cashier. It sets the ceiling.
  2. Module access (optional) — a matrix giving each section No access, View or View & edit. It can only narrow what the role allows.

A request must pass both checks. The server enforces them on every call, so hiding a section in the menu is backed by a real refusal, not just a missing link.

The role ladder#

RoleTierIn short
Owner (SUPER_ADMIN)4The person who signed up. Always full access; cannot be edited or locked out.
Admin (ADMIN)3Everything, including Team & Access and Settings.
Manager (MANAGER)2Day-to-day work in every module, including POS. Can view but not change Team & Access and Settings.
Salesman (SALESMAN)1Read-only.
Cashier (CASHIER)1Read-only.

Some sections are also hidden below a minimum role regardless of the matrix — for example POS, Reports and Finance need Manager, and Team & Access and Settings need Admin. See the table in How the app is organised.

Access without a matrix#

A member with no custom matrix gets the access their role implies:

RoleEvery moduleTeam & Access, Settings
Owner, AdminView & editView & edit
ManagerView & editView
Cashier, SalesmanViewView

The three presets#

The Team page offers three one-click levels. Each sets the matrix for every module at once:

PresetWhat it setsRole it assigns
Read onlyView records, change nothingEvery module View, except Team & Access and Settings which are No access (Dashboard is always at least View).Cashier
Read & writeEdit day-to-day recordsEvery module View & edit, except Team & Access and Settings which are View.Manager
Full accessEverything, including the teamEvery 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 & Access 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#

ModuleRule
DashboardAlways 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, SupportNot 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#

MessageCause
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 permissionsThe action needs a higher role (for example deleting from the Recycle bin needs Admin).
Access restrictedThis section is limited to a higher role.Shown in place of a page opened by URL above the member's role.

Last updated 15/09/2026