SolvexaRetail
Manual ยท Users, Roles & Permissions
All TopicsBack to app

๐Ÿ‘ฅ Users, Roles & Permissions

Back-office users ยท POS staff ยท Role-based access ยท 2FA ยท Full audit trail

Users vs POS Staff (different identities)

Solvexa maintains two separate identity concepts:

Same person can be BOTH โ€” e.g. shop owner has a User login for finance + a Staff PIN for occasional cashier duty. Linked by UserID.

Add a new User (back-office login) โ€” different from POS Staff

Use this if you want someone to log into the back-office web app (owner, accountant, purchase manager, admin). For a cashier who only rings bills on the POS terminal, use "Add a POS Staff" below instead.

  1. Admin โ†’ User Management โ†’ + New User
  2. Fill: Login Name (e.g. rahul), Display Name, Email, Phone, Role (see below), Initial Password
  3. Optional: WhatsApp Phone + Opt-In โ€” lets user chat with Saathi via WA
  4. Optional: Secondary Role for combined permissions
  5. Click Save. User gets password reset link via email (SignupMailer). Must change password on first login.

Add a new POS Staff (cashier / waiter / kitchen)

Use this if you want someone to log into a POS terminal with a 4-digit PIN โ€” cashiers, waiters, KDS kitchen operators. This is a SEPARATE identity from a back-office User (see the "Users vs POS Staff" section above). The same person can have BOTH โ€” e.g. a store manager might be both a User (for reports) and a Staff (for occasional cashier duty).

  1. Admin โ†’ Staff Management โ†’ + New Staff
  2. Fill: Staff Code (short id, e.g. C01), First Name, Last Name, Role (POS-side role, e.g. Cashier / Manager)
  3. Go to the Security tab: set a Password (required for new staff) + optional POS PIN (4โ€“6 digits, used at the till)
  4. Go to the Store Access tab: pick which stores this staff can log into. Toggle Cashier / Manager / Default per store. Only the stores in the dropdown are your own tenant's stores.
  5. Go to the Permissions tab: uncheck any permission you want to deny (defaults come from the role).
  6. Click Save Staff. Staff can now log into POS terminals in the assigned stores using either the password OR the POS PIN.

Common confusion: if someone asks "how do I create a staff", they almost always mean this cashier flow (Admin โ†’ Staff). If they need to log into the back-office web app instead, they need a User (Admin โ†’ User Management, section above).

Fun fact: SolvexaRetail keeps User and Staff as two separate tables because the trust boundaries are very different โ€” a POS Staff PIN is a shared-device authenticator, a User password is a personal-device one.

Built-in Roles

RoleWhat they can do
SYSADMINEverything. Only one per tenant (owner). Cannot be deactivated.
AdminUser management, settings, all modules. Can grant permissions.
ManagerPurchase, Sales, Inventory, Reports. Can post transactions. No user mgmt.
AccountantFinance module. Post journals, run reports, reconcile bank. Read-only on Items/Vendors/Customers.
CashierPOS only. No access to back-office.
ViewerRead-only across all modules. For auditors, investors.

Fine-grained per-user permissions

Roles set the default. Override per-user for specific overrides.

  1. Open a user โ†’ Permissions tab
  2. List of all 200+ permissions grouped by module. Each has Allow / Deny / Inherit-from-role
  3. Common overrides: give a Cashier Report.SalesRegister.View to check own sales; deny a Manager Vendor.Edit to prevent unauthorized vendor changes
  4. Save. Takes effect on next login (session-cached).

Change password

Two-Factor Authentication (2FA)

Add a second lock: after password, prompt for a 6-digit code from Google Authenticator / Authy / 1Password.

  1. Enable: Account โ†’ Security โ†’ Enable 2FA
  2. Scan the QR code with your authenticator app
  3. Type the current 6-digit code to confirm
  4. Save 8 backup codes โ€” each works ONCE if you lose your phone. Store somewhere safe.
  5. Next login: password โ†’ 2FA prompt โ†’ in.
  6. Disable: Account โ†’ Security โ†’ Turn Off 2FA (requires current 6-digit code to disable โ€” prevents attacker from turning it off)
๐Ÿ’ก Owner should ALWAYS enable 2FA. With GST + bank + payment gateway keys stored, single-password breach is a real risk.

Lock or deactivate a user

Login + activity audit

Store-level scoping

Multi-store businesses: restrict a user to see only their store.

  1. Open user โ†’ Allowed Stores tab
  2. Tick stores this user can access. Untick to hide.
  3. Save. User's default filter across all reports scoped to allowed stores.
  4. Manager overrides: still needs the permission (e.g. Store.Switch) to change stores at all.
๐Ÿ’ฌ Ask Saathi: "who's logged in" ยท "failed logins today" ยท "users without 2FA" ยท "reset password for rahul"