Roles and permissions

Role flags that gate each dashboard area and command.

Role records carry checkbox flags. A canManageX flag implies canReadX.

FlagArea
canReadOrders, canManageOrdersOrder queue, accept, status, KDS, catering status
canReadPayments, canManagePaymentsPayments, register shifts, refunds
canReadProducts, canManageProductsMenu, categories, modifiers, recipes
canReadInventory, canManageInventoryInventory, suppliers, purchase orders, waste, staff shifts
canReadLoyalty, canManageLoyaltyRewards and subscriptions
canManagePeople, canManageRolesUsers and roles
canManageSettingsStore settings
canManageOnboardingOnboarding

The first user created at /dashboard/init gets a role with every flag. Commands refuse with messages such as "Not authorized to operate the KDS", "Not authorized to operate register shifts", "Not authorized to manage coffee inventory", and "Not authorized to manage rewards". Report sections only appear for roles that can read their source data.