Administration
Roles & Permissions
28 permissions from ex.permission. Admin and User are created for every company.
Administrator
28 / 28
system role · cannot be edited
User
11 / 28
system role · counter staff
Accounts
8 / 28
custom role
Permission matrix
| Permission | Code | Administrator | User | Accounts |
|---|---|---|---|---|
| Company | ||||
| Edit company settings | company.manage | |||
| Users | ||||
| Manage users | user.manage | |||
| Manage roles | role.manage | |||
| Customer | ||||
| View customers | customer.view | |||
| Add / edit customers | customer.manage | |||
| Rates | ||||
| View rates | rate.view | |||
| Publish standard rates | rate.publish | |||
| Customer rates within tolerance | rate.customer_manage | |||
| Rates beyond tolerance | rate.override | |||
| Exchange | ||||
| Create buy / sell | txn.create | |||
| View own transactions | txn.view_own | |||
| View all transactions | txn.view_all | |||
| Request cancel | txn.cancel_request | |||
| Approve cancel | txn.cancel_approve | |||
| Money | ||||
| Record payments | payment.create | |||
| View all payments | payment.view_all | |||
| Manage expenses | expense.manage | |||
| Stock | ||||
| Create transfers | transfer.create | |||
| Accept / approve transfers | transfer.approve | |||
| Opening stock & adjustments | stock.adjust | |||
| Reports | ||||
| Own reports | report.own | |||
| Company reports | report.company | |||
| Export Excel / CSV / PDF | export.data | |||
| Other | ||||
| Approve requests | approval.decide | |||
| Open / close own day | day.open_close | |||
| View audit log | audit.view | |||
| Backup & restore | backup.manage |
Permissions are cached per user in Redis for 5 minutes and cleared instantly when a role changes. The database also checks the company on every row (RLS), so a UI mistake can never show another company's data.