Design prototype — static sample data, no backend. All screens Build plan
Ctrl K
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

PermissionCodeAdministratorUserAccounts
Company
Edit company settingscompany.manage
Users
Manage usersuser.manage
Manage rolesrole.manage
Customer
View customerscustomer.view
Add / edit customerscustomer.manage
Rates
View ratesrate.view
Publish standard ratesrate.publish
Customer rates within tolerancerate.customer_manage
Rates beyond tolerancerate.override
Exchange
Create buy / selltxn.create
View own transactionstxn.view_own
View all transactionstxn.view_all
Request canceltxn.cancel_request
Approve canceltxn.cancel_approve
Money
Record paymentspayment.create
View all paymentspayment.view_all
Manage expensesexpense.manage
Stock
Create transferstransfer.create
Accept / approve transferstransfer.approve
Opening stock & adjustmentsstock.adjust
Reports
Own reportsreport.own
Company reportsreport.company
Export Excel / CSV / PDFexport.data
Other
Approve requestsapproval.decide
Open / close own dayday.open_close
View audit logaudit.view
Backup & restorebackup.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.